def solution(numbers):
answer = [-1] * len(numbers)
stack = []
for i in range(len(numbers)):
while stack and numbers[stack[-1]] < numbers[i]:
answer[stack.pop()] = numbers[i]
stack.append(i)
return answer
stack에서 인덱스를 저장하는 방식으로 해결할 수 있는 문제
stack에 값이 아닌 인덱스를 저장시키고 stack에 마지막 인덱스의 수 보다 큰 수가 들어오면 계속해서 pop해준다.
pop하면 인덱스 정보가 나오므로 answer 배열에서 해당 인덱스를 바꿔주는 방법으로 정답을 구할 수 있다.
백준에서 똑같은 문제가 있어 쉽게 풀 수 있었다.
-> https://www.acmicpc.net/problem/17298