baekjoon

[백준/BOJ] 1874번 스택 수열 (Python)

riley_dev 2021. 3. 6. 17:47

[백준/BOJ] 1874번 스택 수열

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

이 문제도 기본적인 스택문제여서 금방 풀 수 있었다.

다만 append와 pop을 많이해서 그런지 실행 시간은 조금 오래 걸렸다.

 

Python code

더보기
n=int(input())
n_nums=[0]*n
for i in range(n):
  n_nums[i]=int(input())

stack=[]
process=[]
idx=0
for i in range(1,n+1):
  stack.append(i)
  process.append("+")
  while stack and idx<n:
    temp=stack.pop()
    if  n_nums[idx]!=temp:
      stack.append(temp)
      break
    process.append("-")
    idx+=1
if stack:
  print("NO")
else:
  for p in process:
    print(p)