[프로그래머스/파이썬] 스택/큐 주식가격

bye9·2021년 1월 23일
0

알고리즘(코테)

목록 보기
15/130


https://programmers.co.kr/learn/courses/30/lessons/42584


알고리즘 분류

  • 스택/큐
  • BFS

문제풀이

큐를 사용하여 문제를 풀었다.

핵심포인트는 가격이 떨어지지 않은 기간(초)를 구하는 것이다.
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

0개의 댓글