문제 링크
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
풀이
- stack에 입력한 수를 만날 때까지 push
- stack에서 pop 할 숫자가 입력한 숫자가 아니면 수열을 만들 수 없다
n = int(input())
i = 1
stack =[]
answer = []
result = True
for _ in range(n):
num = int(input())
while i <= num:
stack.append(i)
answer.append('+')
i += 1
if stack[-1] == num:
stack.pop()
answer.append('-')
else:
result = False
if result :
for k in answer:
print(k)
else:
print('NO')
'개발 > algorithm' 카테고리의 다른 글
[백준 3986번] 좋은 단어 -python (0) | 2022.02.04 |
---|---|
[백준 4949번] 균형잡힌 세상 -python (0) | 2022.02.04 |
[백준 10828번] 스택 - python (0) | 2022.02.04 |
[프로그래머스][level2] 다리를 지나는 트럭 - python (0) | 2022.02.03 |
[프로그래머스][level2] 주식가격 - python (0) | 2022.02.03 |