https://www.acmicpc.net/problem/1874
백준 1874 '스택 수열' 문제입니다.
먼저 오름차순으로 deque에 저장해놓고
입력을 리스트로 받아서 처리했습니다.
import sys
from collections import deque
input = sys.stdin.readline
q = deque([])
result = deque([])
N = int(input())
for i in range(N):
q.append(i+1)
nums = []
check = True
op = []
for _ in range(N):
nums.append(int(input()))
for num in nums:
if len(result) == 0:
result.append(q.popleft())
op.append('+')
if result[-1] < num:
while result[-1] < num:
result.append(q.popleft())
op.append('+')
if result[-1] == num:
result.pop()
op.append('-')
else:
check = False
break
if check is True:
for i in range(len(op)):
print(op[i])
else:
print('NO')
'백준 알고리즘' 카테고리의 다른 글
파이썬) 백준 알고리즘 | 17478번 : 재귀함수가 뭔가요? (0) | 2022.03.01 |
---|---|
파이썬) 백준 알고리즘 | 1449번 : 수리공 항승 (0) | 2022.02.27 |
파이썬) 백준 알고리즘 | 2075번 : N번째 큰 수 (0) | 2022.02.24 |
파이썬) 백준 알고리즘 | 1003번 : 피보나치 함수 (0) | 2022.02.18 |
파이썬) 백준 알고리즘 | 1021번 : 회전하는 큐 (0) | 2022.02.06 |
댓글