https://www.acmicpc.net/problem/2164
import sys
from collections import deque
num = int(sys.stdin.readline())
result = deque([])
for i in range(num):
result.append(i+1)
while len(result) > 1:
result.popleft()
temp = result[0]
result.popleft()
result.append(temp)
print(result[0])
deque를 사용하여 queue로 문제를 풀었습니다. 순서대로 맨 위에 있는 숫자를 삭제하고 이후 맨 위 숫자를 맨 뒤로 옮기는 것을 반복합니다.