https://school.programmers.co.kr/learn/courses/30/lessons/154539
def solution(numbers):
answer = [-1] * len(numbers)
stack = []
for idx, number in enumerate(numbers):
if not stack:
stack.append((idx, number))
else:
while stack and stack[-1][1] < number:
answer[stack.pop()[0]] = number
stack.append((idx, number))
return answer