알고리즘/백준
[백준 / python] 1874번 스택 수열 | 초코더
cloud_nice
2020. 1. 30. 14:41
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
나의 풀이
num_list = []
ans = []
count = 1
possibility = True
for i in range(int(input())):
num = int(input())
while count <= num: # count와 num이 같은수를 찾는다.
num_list.append(count) # 그전까진 1부터 count까지 num_list에 저장한다.
ans.append('+') # 저장과 동시에 push라는 말이므로 +를 추가해준다
count += 1
if num_list[-1] == num:
num_list.pop() # num과 num_list의 마지막 값이 같다면 pop해준다.
ans.append('-') # pop를 했으니 -를 추가한다.
else:
possibility = False # num과 num_list의 마지막 값이 다르다면 수열이 성립하지않는다.
if possibility == False:
print('NO')
else:
for j in ans:
print(j)