반응형
알고리즘 분류
- 자료 구조
- 스택
SOLUTION
import sys
n = int(sys.stdin.readline())
cnt = 1
num_list = []
answer = []
tmp = True
for _ in range(n):
num = int(sys.stdin.readline())
while cnt <= num: # 1부터 num 까지 생성
num_list.append(cnt)
answer.append("+")
cnt += 1
if num_list[-1] == num: # num으로 들어온 수 까지 pop() 하고 - 출력
num_list.pop()
answer.append("-")
else: # 오름차순 순인데 num_list[-1] 보다 이전 인덱스가 나오면 앞에 인덱스가 pop되므로 스택 순열 성립X
tmp = False # ex) num_list = [3,4,5] / num = 3 일때 num_list 안에 있는 3에 도달하려면 4, 5가 pop되어야 하므로 오류
if tmp == False:
print("NO")
else:
print(*answer, sep="\n")
'코딩테스트 대비 > BOJ' 카테고리의 다른 글
[Baekjoon/Python] 2805번: 나무 자르기 - 효과는 굉장했다! (0) | 2021.11.02 |
---|---|
[Baekjoon/Python] 1966번: 프린터 큐 - 효과는 굉장했다! (0) | 2021.11.02 |
[Baekjoon/Python] 1654번: 랜선 자르기 - 효과는 굉장했다! (0) | 2021.11.02 |
[Baekjoon/Python] 11866번: 요세푸스 문제 0 - 효과는 굉장했다! (0) | 2021.11.02 |
[Baekjoon/Python] 10866번: 덱 - 효과는 굉장했다! (0) | 2021.10.30 |