(큐, 덱) 카드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하며 카드를 옮겼습니다.