카테고리 없음

[백준/python] 1874번 : 스택 수열

plplpl 2023. 10. 29. 03:05

문제

 

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)