👉 문제 링크
처음에는 주어진 수열을 스택을 사용해서 오름차순으로 정렬하라는 뜻인 줄 알았다.
예제를 참고해서 문제를 이해해보자!
주어진 수열은 [4, 3, 6, 8, 7, 5, 2, 1]
먼저 수열의 맨 처음 숫자인 4를 만들기 위해서는,
빈 배열 (stk)에 1부터 4까지 넣는다.
stk 에 4가 있으므로 4를 뺀다.
그 다음 숫자인 3도 있으므로 3을 뺀다.
다음 숫자인 6을 만들어 보자.
stk 배열에 5와 6을 넣는다.
6이 stk 안에 있으므로 6을 뺀다.
이런 식으로 수열을 만들어가면 된다!
import sys
input = sys.stdin.readline
stk = [] # 숫자를 넣어 줄 빈 배열
ans = []
n = int(input())
cnt = 1
find = True
for _ in range(n):
tmp = int(input())
# 수열의 숫자까지 배열에 넣기
while cnt <= tmp:
stk.append(cnt)
cnt += 1
ans.append('+')
if stk[-1] == tmp:
stk.pop()
ans.append('-')
else:
find = False
if find:
for i in ans:
print(i)
else:
print("NO")