length = int(input())
lines = list(map(int, input().split()))
stack = []
res = [-1] * length
for i in range(length-1, -1, -1):
while stack:
if stack[-1] <= lines[i]:
stack.pop()
else:
res[i] = stack[-1]
stack.append(lines[i])
break
if not stack:
stack.append(lines[i])
print(*res, sep=" ")
계속 동일한 문제이다.
스택은 다 이런식으로 풀면 되는듯?
그나마 여기서 달랐던건 같은 수를 처리하는 경우가 조금 달랐다