본문 바로가기

BOJ 알고리즘 (패캠)/자료구조, 구현

1874번: 스택수열 (구현, 스택) - Fastcampus

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

import sys


def run(N, a):
    res = []
    i, st = 1, []  # 스택

    for x in a:
        while x >= i:
            st.append(i)
            res.append("+")
            i += 1
        if st[-1] == x:
            st.pop()
            res.append("-")
        else:
            return ["NO"]

    return res


N = int(input())
a = [int(sys.stdin.readline()) for _ in range(N)]

ans = run(N, a)
[print(x) for x in ans]  # print("\n".join(ans))