programmers.co.kr/learn/courses/30/lessons/42584
스택을 이용하는 문제입니다. 먼저 주어지는 매개변수의 길이만큼 순회를 합니다. 순회를 하면서 처음 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