본문 바로가기
백준 알고리즘

파이썬) 백준 알고리즘 | 1874번 : 스택 수열

by 코딩새내기_ 2022. 2. 27.

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

 

1874번: 스택 수열

1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.

www.acmicpc.net

백준 1874 '스택 수열' 문제입니다.

먼저 오름차순으로 deque에 저장해놓고

입력을 리스트로 받아서 처리했습니다.

import sys
from collections import deque
input = sys.stdin.readline
q = deque([])
result = deque([])
N = int(input())
for i in range(N):
    q.append(i+1)
nums = []
check = True
op = []
for _ in range(N):
    nums.append(int(input()))

for num in nums:
    if len(result) == 0:
        result.append(q.popleft())
        op.append('+')
    if result[-1] < num:
        while result[-1] < num:
            result.append(q.popleft())
            op.append('+')
    if result[-1] == num:
        result.pop()
        op.append('-')
    else:
        check = False
        break
if check is True:
    for i in range(len(op)):
        print(op[i])
else:
    print('NO')

댓글