최대 1 분 소요

문제링크 : https://www.acmicpc.net/problem/1874

첫 줄에 입력할 줄 수인 N이 주어지고, 각 줄마다 숫자가 주어지는데 이를 스택 연산으로 가능한지 판별하는 문제

먼저 입력된 숫자까지 Stack에 담은 후, 입력된 숫자 + 1을 따로 저장하여 다음부터 스택에 쌓을 수 있게 함

그 후 pop 연산을 실행가능하다면 pop 연산을 수행하고, 아니라면 NO를 출력하면 됨

import sys


N = int(input())
stack = []
answer = []
num = 1
for _ in range(N):
    number = int(sys.stdin.readline())
    if num <= number:
        for i in range(num, number+1):
            stack.append(i)
            answer.append('+')
        num = number+1
    if number == stack.pop():
        answer.append('-')
    else:
        print('NO')
        answer = []
        break
for ans in answer:
    print(ans)

카테고리:

업데이트:

댓글남기기