본문 바로가기

프로그래머스

프로그래머스 LV 2 주식 가격

728x90
from collections import deque

def solution(prices):
    answer = [];
    q = deque(prices);
    
    while q :
        stock = q.popleft();
        idx = 0;
        for i in q :
            idx += 1;
            if i < stock :
                break;
        answer.append(idx);
        
    return answer

풀이 및 회고

이전에 자바스크립트로 풀었을땐 2중 반복문으로 풀었었는데 큐를 활용해 다시 문제를 풀었습니다.

 

1. deque 자료구조를 활용해 prices를 저장합니다.

2. q 가 있을때 까지 반복합니다.

3. 현재 주식 가격을 popleft() 를 활용해 빼내어 다른 주식 가격들과 비교합니다.

4. 주식 가격이 떨어진 경우 break 를 합니다.

5. 더한 값을 answer 배열에 추가해줍니다.

728x90