2164번: 카드2 (acmicpc.net)

##
한쪽에서 빼서 버리거나 빼고 다른쪽에 넣고 있으므로 deque 사용하면 된다

## code
import collections

n = int(input())
l = [i for i in range(1,n+1)]
q = collections.deque(l)

while(True):
    res = q.popleft()
    if len(q) == 0: break
    a=q.popleft()
    q.append(a)

print(res)

어려운 문제를 못풀겠다. 아침에 고민을 해야 하나?