참고 블로그
import collections
import sys
n = int(sys.stdin.readline()) # 최대 숫자를 받는다. 예) 8
stack = collections.deque()
crr = 0
result = collections.deque()
result_flag = True
for i in range(1, n + 1): # 최대 숫자만큼 반복을 한다, 예) 1에서 8까지
m = int(sys.stdin.readline()) # 수열을 만들 숫자, 예) 4
while crr < m: # 현재값이 낮을경우 올려준다, 예) 1,2,3,4가 생김
result.append("+")
crr += 1 # m보다 낮으면 채워준다. 값을 안내리기에 이어서 추가 됨
stack.append(crr)
if m == stack[-1]: # 현재가 스택의 마지막 값이랑 같으면 빼준다, 예) 수열을 만들 숫자 4를 받았기에 pop result.append("-")
stack.pop()
else: # 다르면은 멈춘다.
print("NO")
result_flag = False
break
if result_flag:
for i in result:
print(i)