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