문제 링크
https://www.acmicpc.net/problem/1874
정답 코드
import sys
n = int(sys.stdin.readline())
current = 1
stack = [0]
answer = []
temp = True
for i in range(n):
target = int(sys.stdin.readline().strip())
while current <= target:
stack.append(current)
answer.append('+') #current가 target보다 작거나 같으면 push
current += 1
if stack[-1] == target:
stack.pop()
answer.append('-') #stack에 제일 최근에 들어간 숫자가 target과 같으면 pop
else: #오름차순이 되지 않을 경우
temp=False
if temp == False:
print('NO')
else:
for i in answer:
print(i)
728x90
'파이썬 알고리즘 문제 풀이' 카테고리의 다른 글
[프로그래머스] K번째수 (0) | 2023.11.14 |
---|---|
[프로그래머스] 같은 숫자는 싫어 (0) | 2023.11.14 |
Baekjoon Online Judge 9093 (0) | 2023.02.14 |
Baekjoon Online Judge 4256번 파이썬. 분할정복. (0) | 2023.02.07 |
Baekjoon Online Judge 17829번 파이썬. 분할정복. (0) | 2023.01.31 |