https://www.acmicpc.net/problem/1874
<문제 접근>
스택. 기본적인 자료구조로, LIFO 특성을 갖는다.
1부터 n까지의 수를 스택에 넣었다가, 하나의 수열을 만들 수 있다. 이 때 push 순서는 반드시 오름차순을 지켜준다.
<코드>
count = 1
ans = [] # '+', '-'를 담을 배열
li = [] # 숫자들을 담을 배열
flag = True
n = int(input())
for i in range(n):
num = int(input())
while (num >= count):
li.append(count)
ans.append('+')
count += 1
if li[-1] == num:
li.pop()
ans.append('-')
else:
flag = False
break
if flag == False:
print("NO")
else:
for i in ans:
print(i)