[백준] 2164 카드2 Python

BellBoy·2023년 5월 10일
0

https://www.acmicpc.net/problem/2164

import sys
from collections import deque

input = sys.stdin.readline

N = int(input())
N_deque = deque(i for i in range(1, N+1))

count = 1

while len(N_deque) > 1:
    if count == 1:
        N_deque.popleft()
        count = 2

    elif count == 2:
        N_deque.rotate(-1)
        count = 1

print(N_deque[0])

del 함수가 시간복잡도 O(n) 이여서 카드 O(n^2)의 시간 복잡도가 나왔는데
deque를 이용해서 시간복잡도를 O(n)까지 줄일 수 있었습니다
rotate라는 deque의 새로운 함수를 알게되었는데 위 함수는 n값 많큼 오른쪽으로 회전하고 음수면 왼쪽으로 회전하는 함수입니다.

profile
리액트러버

0개의 댓글