import collections
import sys
n = int(sys.stdin.readline()) # 최대 숫자를 받는다. 예) 8
stack = collections.deque()
crr = 0
result = collections.deque()
result_flag = True
for i in range(1, n + 1): # 최대 숫자만큼 반복을 한다, 예) 1에서 8까지
m = int(sys.stdin.readline()) # 수열을 만들 숫자, 예) 4
while crr < m: # 현재값이 낮을경우 올려준다, 예) 1,2,3,4가 생김
result.append("+")
crr += 1 # m보다 낮으면 채워준다. 값을 안내리기에 이어서 추가 됨
stack.append(crr)
if m == stack[-1]: # 현재가 스택의 마지막 값이랑 같으면 빼준다, 예) 수열을 만들 숫자 4를 받았기에 pop result.append("-")
stack.pop()
else: # 다르면은 멈춘다.
print("NO")
result_flag = False
break
if result_flag:
for i in result:
print(i)
'개발 > 알고리즘' 카테고리의 다른 글
백준 11279번 최대 힙 (0) | 2024.01.17 |
---|---|
백준 1021번 회전하는 큐 (0) | 2024.01.16 |
백준 4949번 균형잡힌 세상 (1) | 2024.01.15 |
백준 9012번 괄호 (0) | 2024.01.10 |
백준 1011번 Fly me to the Alpha Centauri (1) | 2024.01.05 |
import collections
import sys
n = int(sys.stdin.readline()) # 최대 숫자를 받는다. 예) 8
stack = collections.deque()
crr = 0
result = collections.deque()
result_flag = True
for i in range(1, n + 1): # 최대 숫자만큼 반복을 한다, 예) 1에서 8까지
m = int(sys.stdin.readline()) # 수열을 만들 숫자, 예) 4
while crr < m: # 현재값이 낮을경우 올려준다, 예) 1,2,3,4가 생김
result.append("+")
crr += 1 # m보다 낮으면 채워준다. 값을 안내리기에 이어서 추가 됨
stack.append(crr)
if m == stack[-1]: # 현재가 스택의 마지막 값이랑 같으면 빼준다, 예) 수열을 만들 숫자 4를 받았기에 pop result.append("-")
stack.pop()
else: # 다르면은 멈춘다.
print("NO")
result_flag = False
break
if result_flag:
for i in result:
print(i)
'개발 > 알고리즘' 카테고리의 다른 글
백준 11279번 최대 힙 (0) | 2024.01.17 |
---|---|
백준 1021번 회전하는 큐 (0) | 2024.01.16 |
백준 4949번 균형잡힌 세상 (1) | 2024.01.15 |
백준 9012번 괄호 (0) | 2024.01.10 |
백준 1011번 Fly me to the Alpha Centauri (1) | 2024.01.05 |