[BOJ] 백준 1874 스택 수열

태환·2024년 1월 31일
0

Coding Test

목록 보기
27/151

📌 [BOJ] 백준 1874 스택 수열

📖 문제

📖 예제

📖 풀이

import sys

n = int(input())
stk = []
answer = []
cnt = 1
Is = True

for _ in range(n):
  num = int(sys.stdin.readline())
  while num >= cnt:
    stk.append(cnt)
    answer.append('+')
    cnt += 1
  if stk[-1] == num:
    stk.pop()
    answer.append('-')
  else:
    Is = False

if not Is:
  print("NO")
else:
  for i in answer:
    print(i)

고려사항
1. 입력값보다 작은 수들과 그에 대한 갯수만큼의 '+'를 각각의 리스트(stk, answer)에 저장한다.
2. 저장한 수의 마지막 값이 입력값과 같아지면 stk에서 pop()을 이용하여 제거하고, 추가로 answer에 '-'를 저장한다.
3. skt에 마지막으로 저장되어 있는 값보다 더 작은 값을 입력값으로 받는다면 마지막에 'NO'를 출력할 수 있도록 한다.

profile
연세대학교 컴퓨터과학과 석사 과정

0개의 댓글