스택을 이용하여 풀었다. 처음에는 스택 두개를 이용해서 풀어야하나 생각했는데 그렇게하면 오른쪽에 자기 자신보다 큰게 두개 이상이면 순서를 넘어가 버린다. 그래서 풀이를 참고했는데 인덱스를 스택에 넣어주고 비교해주면 된다고 했다.
import sys
n = int(input())
A = list(map(int, sys.stdin.readline().split()))
answer = [-1] * n
stack = [0]
for i in range(1, n):
while stack and A[stack[-1]] < A[i]:
answer[stack.pop()] = A[i]
stack.append(i)
print(*answer)