import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
my_stack = deque()
number = 1
my_array = []
no = False
for i in range(n):
k = int(input())
while k >= number:
my_stack.append(number)
number += 1
my_array.append('+')
if my_stack.pop() == k:
my_array.append('-')
else:
no = True
if no == True:
print('NO')
else:
for i in my_array:
print(i)
시간 초과를 줄이기위해 입력받는값, deque를 사용해서 시간을 줄였습니다
number를 늘려가면서 스택에 쌓기 시작하고 특정 숫자에서 pop을 하여서 값을 출력하지만 다른 값이 나오면
no를 false에서 true로 변경하여 NO를 출력하게하고 정상적으로 스택이 진행됐으면 my_array를 출력하게 하였습니다