시작이 반

[백준] 1874번 (python 파이썬) 본문

알고리즘/백준

[백준] 1874번 (python 파이썬)

G_Gi 2021. 3. 4. 21:10
SMALL

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

 

n까지의 숫자가 주어졌을때 1 ~ n을 스택에 push하고 언제 pop할 것인지 정하면된다.

 

ex)

입력

n = 8

list = 4 3 6 8 7 5 2 1

일때

1 ~ 8까지 스택에 차례로 push를 하면서 스택의 top과 list[j]의 숫자가 같다면 pop을 하고 j 를 1증가시킨다.

 

import sys
input = sys.stdin.readline

n = int(input())
input_number = list(int(input()) for _ in range(n))

stack = list()
result = list()
j = 0
for i in range(1, n+1):
    stack.append(i)
    result.append('+')

    while stack and input_number[j] == stack[-1]:
        stack.pop()
        result.append('-')
        j += 1

if stack:
    print('NO')
else:
    for i in range(len(result)):
        print(result[i])

 

 

 

LIST

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 2630번 (python 파이썬)  (0) 2021.03.06
[백준] 1021번 (python 파이썬)  (0) 2021.03.04
[백준] 4949번 (python 파이썬)  (0) 2021.03.04
[백준] 9012번 (python 파이썬)  (0) 2021.03.04
[백준] 9375번 (python 파이썬)  (0) 2021.03.03