[백준] 1874번: 스택 수열 Python

BellBoy·2023년 5월 20일
0

https://www.acmicpc.net/problem/1874

import sys
from collections import deque

input = sys.stdin.readline

n = int(input())
my_stack = deque()
number = 1
my_array = []
no = False

for i in range(n):
    k = int(input())

    while k >= number:
        my_stack.append(number)
        number += 1
        my_array.append('+')

    if my_stack.pop() == k:
        my_array.append('-')
    else:
        no = True

if no == True:
    print('NO')
else:
    for i in my_array:
        print(i)

시간 초과를 줄이기위해 입력받는값, deque를 사용해서 시간을 줄였습니다
number를 늘려가면서 스택에 쌓기 시작하고 특정 숫자에서 pop을 하여서 값을 출력하지만 다른 값이 나오면
no를 false에서 true로 변경하여 NO를 출력하게하고 정상적으로 스택이 진행됐으면 my_array를 출력하게 하였습니다

profile
리액트러버

0개의 댓글