(큐, 덱) 카드2

2020. 3. 3. 16:32개발노트

이 문제의 저작권은 BAEKJOON에 있습니다.

 

https://www.acmicpc.net/problem/2164

문제는 위 링크에서 확인할 수 있습니다.

 

#https://www.acmicpc.net/problem/2164
#카드2
import sys
from collections import deque
N = int(sys.stdin.readline().strip())
A = [i for i in range(N, 0, -1)]
q = deque(A)
check = 0
while 1:
    if len(q) == 1:
        print(q[0])
        break
    if check == 0:
        #0이면 버리기
        q.pop()
    else:
        #1이면 제일 아래로 옮기기
        q.rotate(1)
    #버리기와 옮기기 번갈아서 하기위해 check값 변경
    if check == 0:
        check = 1
    else:
        check = 0

 

주어진 카드를 버리기와 옮기기를 번갈아가며 가장 마지막에 남는 카드를 출력합니다.

파이썬 deque를 이용해 큐를 rotate하며 카드를 옮겼습니다.