풀이
뭔가 시키는 대로 하면 틀릴 거 같아서, 손으로 먼저 풀어보았다.
두 가지 사실을 얻을 수 있었다.
1) 항상 짝수만 고려해도 된다.
2) N이 홀수면 뒤로 넘기기부터, N이 짝수면 버리기부터 하면 된다.
그리고 가능 입력이 N=1이 가능하므로 그것까지 고려해주어야 한다.
import sys
from collections import deque
input = sys.stdin.readline
N = int(input().rstrip())
# 짝수만 고려
nums = [i for i in range(N) if i % 2 == 0]
q = deque(nums)
while len(q) > 1:
if N % 2 == 0:
q.popleft()
q.rotate(-1)
else:
q.rotate(-1)
q.popleft()
if len(q) == 0:
print(1)
else:
print(q[0])