백준_스택_카드2_2146

leeseungsoo0701·2022년 1월 18일
0

백준

목록 보기
1/9

stack & queue(1)

python에서 queue를 사용하는 것은 시간복잡도 상 좋지 않다
-> 그 이유로는 queue라는 것은 FIFO로 선입선출을 원할 때 사용하는 알고리즘인데
python의 리스트는 (queue를 직접 만들지 않는 이상) queue를 하려하면 가장 앞 인덱스가 빠지고 나머지 인덱스들을 다시 앞으로 한칸 씩 땡겨주는 작업을 해야하기 때문이다.

이에 대한 해결책으로 deque가 있으며 이는 가장 앞의 것도 빼주기에 (O(1))로 가능하다.
위 기능을 잘 사용하자.



import sys
from collections import deque

N = int(sys.stdin.readline())
queue = deque()

for i in range(N):
    queue.append(i + 1)

while len(queue) > 1:
    queue.popleft()
    queue.append(queue.popleft())

print(queue.pop())


링크:
https://github.com/leeseungsoo0701/python_alogrithm/blob/main/stack_queue/daily_temperatures.py

leetcode 739

profile
한 줄이라도 정확하고 깊게 알아가보자 늦어도 좋다.

0개의 댓글