2164 카드2

Yohan Kim·2022년 6월 28일
0

문제

1-n까지의 카드가 오름차순으로 있다.
앞에서부터 하나를 빼고 하나를 마지막에 넣고를 반복했을 때, 마지막으로 남아있는 카드를 출력하는 문제이다.

코드

import sys
import _collections
n = int(sys.stdin.readline())

q = _collections.deque([i for i in range(1,n+1)])
last = 0

while q:
    last = q.popleft()
    if q:
        last = q.popleft()
        q.append(last)
print(last)

해설

queue를 활용하여 문제를 풀었다.
큐가 비어있지않으면 하나를 뽑고, 그래도 비어있지않다면 하나를 더 뽑아서 마지막에 넣는 방식으로 구현을 했다.

뽑을 때마다 last를 갱신하여 마지막에 last를 출력했다.

profile
안녕하세요 반가워요!

0개의 댓글