나의 개발일지

[백준] 1874 스택 수열 [Python, 파이썬] 본문

백준

[백준] 1874 스택 수열 [Python, 파이썬]

YoonJuHan 2024. 1. 5. 14:01
  • 문제 : https://www.acmicpc.net/problem/1874
  • 🔑 스택
    • 나열해야 하는 수 보다 현재 숫자가 같거나 작으면 스택에 넣어놓는다. +
    • 스택 제일 위의 수가 나열해야 하는 수와 같으면 스택에서 꺼낸다. -
    • +, - 를 바로 출력하지 않고 저장해 놓고 수열을 만들 수 있으면 출력을 한다. 끝 ✨

 

import sys
input = sys.stdin.readline

n = int(input())
numbers = [int(input()) for _ in range(n)]

stack = []
idx = 1
answer = []

for i in numbers:

    while idx <= i:
        stack.append(idx)
        idx += 1
        answer.append("+")

    if stack[-1] == i:
        stack.pop()
        answer.append("-")
    else:
        print("NO")
        exit()

for i in answer:
    print(i)
Comments