https://programmers.co.kr/learn/courses/30/lessons/42584
큐를 사용하여 문제를 풀었다.
핵심포인트는 가격이 떨어지지 않은 기간(초)를 구하는 것이다.
3초 시점의 경우 1초 뒤에 가격이 떨어진다. 이는 가격이 떨어지지 않은 기간이 1초인 것이다.
처음에 단순하게 해당 시점 이후로 크거나 같은 경우 +1을 했는데 3초 시점은 return 값이 1인 이유가 3보다 크거나 같은 3이 5초 시점에 있어서가 아니라 위의 이유라서 1인 것이다.
따라서 else문에서도 +1을 해주고 대신 break로 for문을 빠져나온다.
def solution(prices):
from collections import deque
queue=deque(prices)
result=[]
while queue:
now=queue.popleft()
cnt=0
for i in queue:
if now<=i:
cnt+=1
else:
cnt+=1
break
result.append(cnt)
return result