백준

백준 1874번: 스택 수열

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

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
26
27
28
29
30
= int(input())
= [0]*n
 
for i in range(n):
    a[i] = int(input())
 
stack = []
num = 1
result = True
answer = ""
for i in range(n):
    temp = a[i]
    if temp >= num:
        while temp >= num:
            stack.append(num)
            answer += "+\n"
            num+=1
        stack.pop()
        answer += "-\n"
    else:
        s = stack.pop()
        if s > temp:
            print("NO")
            result = False
            break
        else:
            answer += "-\n"
            
if result:
    print(answer)
cs

'백준' 카테고리의 다른 글

백준 11286번: 절댓값 힙  (0) 2023.02.04
백준 17298번: 오큰수  (0) 2023.02.03
백준 11003번: 최솟값 찾기  (0) 2023.01.31
백준 12891: DNA 비밀번호  (0) 2023.01.28
백준 1253: 좋다  (0) 2023.01.27