문제
https://www.acmicpc.net/problem/1874
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
Algorithm
1. num이하 숫자까지 스택에 넣기
2. num이랑 스택 맨 위 숫자가 동일하다면 제거
3.else문을 통해 스택 수열을 만들 수 없으므로 False
4. 스택 수열을 만들 수 있는지 여부에 따라 출력
Code
count = 1
temp = True
stack = []
op = []
N = int(input())
for i in range(N):
num = int(input())
while count <= num:
stack.append(count)
op.append('+')
count += 1
if stack[-1] == num:
stack.pop()
op.append('-')
else:
temp = False
break
if temp == False:
print("NO")
else:
for i in op:
print(i)