본문 바로가기
백준

[백준] 1874번 파이썬 (스택 수열)

by 헤이즐넛 좋아하는 개발자 2024. 2. 18.

1. 문제와 예제

문제
예제


2. 전체 코드

import sys
input = sys.stdin.readline

# 입력 받기
n = int(input().rstrip()) # 1~n 정수
stack = [] # 스택
op = [] # 필요한 연산
cnt = 1 # 1~n 정수 중 무슨 숫자까지 사용되었는지 
isAble = True # 입력된 수열을 만들 수 있는지 여부

for i in range(n):
    num = int(input().rstrip()) # 주어진 정수
    while cnt <= num:
        stack.append(cnt)
        op.append("+")
        cnt += 1
    
    if (stack[-1] == num):
        stack.pop()
        op.append("-")
    else:
        isAble = False
        break

if isAble == False:
    print("NO")
else:
    for i in op:
        print(i)

 


3. 코드 해설

예제를 활용했고 각 과정에 번호를 붙여서 따라가다 보니 코드를 정리할 수 있었다.