- 테스트케이스를 바탕으로 어떤 방식으로 코드를 작성해야할지 고민한 다음 코드로 옮겼다.
stack
스택을 사용해서 오큰수 조건에 맞도록 작성하면 된다.
import sys
input = sys.stdin.readline
N = int(input())
A = list(map(int, input().strip().split()))
stack = []
answer = [-1] * N
for i in range(N):
while stack and A[stack[-1]] < A[i]:
answer[stack.pop()] = A[i]
stack.append(i)
print(*answer)