취준생의 코딩테스트 연습기

[백준] 1874번 스택 수열 / 파이썬(python) 본문

코딩테스트/백준

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

Jiwon_C 2021. 3. 24. 01:32

# 문제 링크

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

# Soultion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#스택수열
 
= int(input())
input_stack = []
for _ in range(n):
    input_stack.append(int(input()))
input_stack.reverse()
box = []
output_stack = []
 
for i in range(1,n+1):
    box.append(i)
    output_stack.append('+')
 
    if box and box[-1]==input_stack[-1]:
        while(box[-1]==input_stack[-1]):
            output_stack.append('-')
            input_stack.pop()
            box.pop()
            if not box:# 박스가 비었으면 종료
                break
if box:
    print("NO")
else:
    print('\n'.join(output_stack))
cs
Comments