Coding/프로그래머스

[프로그래머스] 주식가격 - (python 파이썬)

Kitsune_park 2022. 4. 7. 15:46

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42584

 

코딩테스트 연습 - 주식가격

초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00

programmers.co.kr

 

 

풀이과정 : 먼저 시간복잡도가 O(n^2)로 보이는데, 이것보다 더 효율적으로 풀어야한다고

 

생각하여 계속해서 다른방법을 찾다가 풀이과정을 보았고, 그냥 원래 생각했던 대로

 

풀면 되는것이었다. 큐, 덱을 이용해서 풀어도 되지만 그냥 반복문 두개를 만들고

 

i, j 중 j를 이동시키며 시간을 i마다 계산해서 answer리스트에 넣어줘도 된다.

 

 

from collections import deque

def solution(prices):
    price_queue = deque(prices)
    answer = []
    
    while price_queue:
        price = price_queue.popleft()
        time = 0
        for queue in price_queue:
            time += 1
            if queue < price:
                break
        answer.append(time)
    
    return answer

 

 

답(이미지)

 

 

후기 : 더 스마트한 풀이가 있을 거라 생각했는데, 원초적으로 푼것 같아 아쉽다.