본문 바로가기

알고리즘/프로그래머스

[프로그래머스][Python] 주식가격

주식가격이 내려가지 않은 기간은 몇 초인지 파악하는 문제이다.

 

 

# 가격이 내려가지 않은 기간
from collections import deque


def solution(prices):
    answer = []

    prices = deque(prices)

    while prices:
        now = prices.popleft()
        result = 0

        if not prices:
            result = 0

        else:
            for val in prices:
                result += 1

                if val < now:
                    break

        answer.append(result)

    return answer


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

 

 

처음 들어간 값이 먼저나오는 Queue(FIFO)구조로 동작한다.

 

 

이렇게 풀게 되면 N + (N - 1) + (N - 2) + (N - 3) + ... + 1번 돌게 된다.

O(N^2)이다.