본문 바로가기
> 알고리즘 문제 풀이/프로그래머스

20/09 - 주식가격

by bky373 2020. 9. 20.
from collections import deque

def solution(prices):
    prices_dq = deque(prices)
    answer = [0]*len(prices)

    if len(prices_dq) == 2:
        return [1,0]

    for x in range(len(prices_dq)):
        current_price = prices_dq.popleft()
        
        for next_price in prices_dq:
            answer[x] += 1
            if current_price > next_price:
                break
    return answer

print(solution([1, 2, 3, 2, 3]))

"""
[4, 3, 1, 1, 0]
"""

"""
<반복문 로직>

prices = ABCD
A를 pop한다
prices = BCD
A와 B,C,D를 비교한다
    A 해당 인덱스의 시간을 1초 올린다
    B가 A보다 높으면 반복문을 빠져나온다
    B가 A보다 낮거나 같으면 C와 D를 차례대로 비교한다

B를 pop한다
prices = CD
B를 C, D와 비교한다
    B 해당 인덱스의 시간을 1초 올린다
    C가 B보다 높으면 반복문을 빠져나온다
    C가 B보다 낮거나 같으면 D를 비교한다

C를 pop한다
prices = D
C를 D와 비교한다
    C 해당 인덱스의 시간을 1초 올린다
    어떤 분기든 반복문을 빠져나온다

*마지막*
D는 내부 반복문을 돌기 전에 빠져나온다

"""
​

 

- 문제 출처 : programmers.co.kr/learn/courses/30/lessons/42584

 

'> 알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글

lv1-체육복 (python, 파이썬)  (0) 2020.10.19
lv1-완주하지 못한 선수  (0) 2020.10.18
20/09- 프린터  (0) 2020.09.29
20/09- 다리를 지나는 트럭  (0) 2020.09.28
20/09 - 기능개발  (0) 2020.09.21

댓글