백준 1874번 "스택 수열"

sanha_OvO·2021년 4월 26일
0

Algorithm

목록 보기
28/84

문제

백준 1874번 스택수열


풀이

문제풀이도 문제풀이지만 문제를 이해하는 데 더 시간을 썼던 문제.

1부터 n까지 오름차순으로 들어오는 숫자들을 차례대로 스택에 넣으며
주어진 수열과 비교하여 주어진 수열의 순서와 같이 pop해준다.

연산의 결과 스택이 비어있으면 주어진 수열과 같은 수열을 만들 수 있으므로 연산자를 출력하고,
그렇지 않은 경우는 'NO'를 출력하도록 하면 된다.


Python 코드

import sys
input = sys.stdin.readline

n = int(input())

s = []
for i in range(n):
  s.append(int(input()))

stack = []
answer = []
count = 0

for i in range(1, n+1):
  stack.append(i)
  answer.append('+')
  while stack[-1] == s[count]:
    stack.pop()
    answer.append('-')
    count += 1
    if not stack:
      break

if not stack:
  for i in range(len(answer)):
    print(answer[i])
else:
  print('NO')
profile
Web Developer / Composer

0개의 댓글