https://programmers.co.kr/learn/courses/30/lessons/42584
"""
1. 아이디어
큐에서 가격을 뽑아 낸 후 남아있는 가격들을 순서대로 비교해주면 된다.
2. 시간복잡도
o(n^2)인데 중간에 break되는 부분이 있어 n^2보단 빠를 것이다.
그래서 통과되지 않았을까?..
"""
from collections import deque
def solution(prices):
answer = []
queue = deque(prices)
while queue:
q = queue.popleft()
period = 0
for x in queue:
if q <= x:
period += 1
else:
period += 1 # 3초 시점 때문에 이 부분을 추가해줘야 한다.
break
answer.append(period)
return answer
위의 for x in queue: 부분에 period += 1 부분이 겹치므로 다음과 같이 작성해도 된다.
for x in queue:
period += 1
if q > x:
break
큐를 활용할 수 있으면 풀 수 있는 간단한 문제이다.