본문 바로가기
코딩테스트

[프로그래머스] 스택/큐 - 주식가격

by 박매트 2024. 1. 29.

 

나의 답

def solution(prices):
    answer = [] * len(prices)
    
    for i,value in enumerate(prices):
        cnt = 0
        
        for index in range(i+1,len(prices)):
            if prices[index]>=prices[i]:
                cnt+=1
            else:
                cnt+=1
                break
        answer.append(cnt)
        
    return answer

 

이게 스택을 사용해서 푼 풀이는 아닌지라.....

 

 

다른 사람 답

def solution(prices):
    stack = []
    answer = [0] * len(prices)
    for i in range(len(prices)):
        if stack != []:
            while stack != [] and stack[-1][1] > prices[i]:
                past, _ = stack.pop()
                answer[past] = i - past
        stack.append([i, prices[i]])
    for i, s in stack:
        answer[i] = len(prices) - 1 - i
    return answer

 

어렵다..........

비교를 시작부터 해주는게 아니라 숫자가 작아질때 그보다 큰걸 다 정리

정리 안된거는 마지막에 다 해줌