문제12 [스택] 주식 가격

반응형

https://wikidocs.net/223106

 

def solution(p):
    a = []
    n=len(p)
    for i in range(n):
        cnt=0
        for j in range(i+1, n):
            cnt+=1
            if p[i] > p[j] :
                break
        a.append(cnt)
            
    return a

 

- 간단하게 2중 for문을 사용하여 비교하며 최초 가격이 떨어지는 시점에서의 지난 초를 반환한다.

 

def solution(prices):
    n = len(prices)
    answer = [0] * n
    stack = []
    for i, price in enumerate(prices):
        while stack and prices[stack[-1]] > price:
            j = stack.pop()
            answer[j] = i - j
        stack.append(i)
    while stack:
        j = stack.pop()
        answer[j] = n - 1 - j
    return answer

 

- 스택을 사용한 방법

반응형