백준 1874: 문제링크
문제유형 : 스택, 그리디
설명
스택에 특정 수에 도달할 때까지 push한다.
스택이 특정 수에 도달하면 pop한다.
수의 배열을 완성하면 출력하고 불가능하면 NO를 출력한다
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22n = int(input())
count = 1
stack = []
result = []
for i in range(1, n + 1): # 데이터 개수만큼 반복
data = int(input())
while count <= data: # 입력 받은 데이터에 도달할 때 까지 삽입
stack.append(count)
count += 1
result.append('+')
if stack[-1] == data: # 스택의 최상위 원소가 데이터와 같을 때 출력
stack.pop()
result.append('-')
else: # 불가능한 경우
print('NO')
exit(0)
print('\n'.join(result)) # 가능한 경우