자기개발👨‍💻/코딩 알고리즘

[python] 백준2164 카드2

천숭이 2021. 7. 8. 20:54
from collections import deque
import sys
n=int(sys.stdin.readline())
numbers=deque([i for i in range(1,n+1)])
cnt=0
while(cnt<n-1):
    numbers.popleft();
    numbers.append(numbers.popleft())
    cnt+=1

print(numbers[0])

collections 라이브러리의 deque를 사용해야한다

리스트를 사용하면 O(n)의 시간복잡도가 나오지만

deque를 사용하면 O(1)의 시간복잡도가 나오며 실행시간이 매우 줄어든다