

처음에 많이 당황했던 문제이다. 상황을 세세하게 나눠 구현하려고 했다가 산으로 가고 있다는걸 깨닫고, 스택의 원리를 다시 생각해보았다.
n = int(input())
arr = []
for _ in range(n):
arr.append(int(input()))
stack = []
current = 1
result = []
flag = True
for i in range(len(arr)):
while(current <= arr[i]):
stack.append(current)
current += 1
result.append('+')
if(arr[i] == stack[-1]):
stack.pop()
result.append('-')
else:
print('NO')
flag = False
break
if(flag):
for i in result:
print(i)
특정 숫자가 나오면 그 숫자에 도달할 때 까지 스택에 숫자 쌓기
스택 제일 위 값이 원하는 값이 아닐 경우, 그 배열은 불가능하단 것을 알아야 한다.