시간초과..ㅠ.ㅠ
n = [i for i in range(1,int(input())+1)]
while 1:
i = n[1]
del n[0:2]
n.append(i)
if len(n) == 1:
print(n[0])
break
list는 random access에 최적화된 자료구조이다.
따라서 pop,insert는 시간복잡도가 데이터 개수가 늘어나면 느려진다.
그래서 deque 자료구조를 사용하여 풀어야한다.
deque(double-ended queue): 양방향에서 데이터 추가&제거하는 자료구조
from collections import deque
collections 모듈에서 deque를 임포트한다.
deque는 popleft()메서드를 제공한다.
from collections import deque
import sys
input = sys.stdin.readline
n = int(input())
card = deque ([i for i in range(1,n+1)])
while len(card) > 1:
card.popleft()
a= card.popleft()
card.append(a)
print(card[0])