호기심 많은 분석가

[프로그래머스] 스택_큐 - 주식가격 (Python) 본문

Coding/Coding Test & Algorithm

[프로그래머스] 스택_큐 - 주식가격 (Python)

DA Hun 2021. 6. 28. 13:26
 

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

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

programmers.co.kr

def solution(prices):
    answer = []
    for i in range(len(prices)) :
        for j in range(i, len(prices)) :
            if prices[i] > prices[j] :
                answer.append(j-i)
                break
            if j==len(prices)-1 :
                answer.append(j-i)
    return answer

내 풀이

예상치도 못하게 이중 for문으로 해결돼서 놀랐다. 택한 원소 이후로 그것보다 작은 게 없으면 마지막 원소 위치 - 택한 원소 위치를 입력해줬고, 있다면 그 위치까지의 거리를 입력해줌. 레벨 2 치고는 쉬운 편이었다.

다른 풀이

from collections import deque
def solution(prices):
    answer = []
    prices = deque(prices)
    while prices:
        c = prices.popleft()

        count = 0
        for i in prices:
            if c > i:
                count += 1
                break
            count += 1

        answer.append(count)

    return answer

 알고리즘은 거의 흡사하다. 스택/큐를 사용해서 풀고 싶다면 이렇게 해결할 수 있을 것 같다.