백준_스택_카드2_2146
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
Author And Source
이 문제에 관하여(백준_스택_카드2_2146), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@leeseungsoo0701/백준-코딩-테스트-문제스택큐카드22146저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)