이 문제의 경우 대다수의 사람들이 지문 이해가 어렵다고 한다.
지문에서 말하는 조건
스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자.
-> 주어진 수를 활용하되 꼭 주어진 수로 push를 하라는 말이 아님.
push는 꼭 오름차순 수열.
임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지,
있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다.
-> 4, 3, 6, 8, 7, 5, 2, 1의 수열이 주어졌을 때 (니가 만든) 스택을 이용해서 오름차순 push를 하고 거기서 pop을 했을 때의 수열을 4, 3, 6, 8, 7, 5, 2, 1로 만들어라.
stack = []
result = []
count = 1
flag = 1
n = int(input())
for i in range(n):
command = int(input())
while count <= command:
stack.append(count)
result.append("+")
count += 1
if stack[-1] == command:
stack.pop()
result.append("-")
else:
print('NO')
flag = 0
break
if flag == 1:
for i in range(len(result)):
print(result[i])
stack = []
result = []
count = 1
flag = 1
n = int(input())
for i in range(n):
command = int(input())
while count <= command:
stack.append(count)
result.append("+")
count += 1
if stack[-1] == command:
stack.pop()
result.append("-")
else:
print('NO')
flag = 0
break
if flag == 1:
for i in range(len(result)):
print(result[i])