본문으로 바로가기

프로그래머스_주식가격

category 알고리즘 2021. 4. 4. 20:38

programmers.co.kr/learn/courses/30/lessons/42584

 

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

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

programmers.co.kr

 

스택을 이용하는 문제입니다. 먼저 주어지는 매개변수의 길이만큼 순회를 합니다. 순회를 하면서 처음 price를 스택에 쌓고 다음 price가 더 크면 스택에 쌓고 작으면 pop을 합니다. 이때 현재 시간을 pop 해서 나온 시간과 빼주어 answer에 넣어 주면 됩니다.

 

def solution(prices):
    N = len(prices)
    answer = [0 for _ in range(N)]
    stack = []

    for i in range(N):
        while stack and prices[i] < prices[stack[len(stack) - 1]]:
            temp = stack.pop()
            answer[temp] = i - temp

        stack.append(i)

    while stack:
        temp = stack.pop()
        answer[temp] = N - temp - 1

    return answer

'알고리즘' 카테고리의 다른 글

백준_12026  (0) 2021.04.11
프로그래머스_등굣길  (0) 2021.04.11
프로그래머스_위장  (0) 2021.04.04
백준_촌수계산  (0) 2021.03.21
백준_막대기  (0) 2021.03.14