# 나의 풀이
n = int(input())
count = 1
stack = list()
result = list()
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))
data를 n번 받아야하므로
for i in range(1, n+1):
입력받은 data까지 stack이 채워지고 이 후에 pop()으로 뽑아내야 배열을 완성할 수 있으므로,
while count <= data:
스택의 가장 상단의 값과 data가 항상 일치해야하므로
if stack[-1] == data:
스택안에 값들이 위에서부터 아래로 내림차순이 아닌경우,
else:
print('NO')
exit(0)
'코딩 테스트 > 알고리즘' 카테고리의 다른 글
백준 5387 - 키로거 (0) | 2021.02.13 |
---|---|
백준 1966 - 프린터 큐 (0) | 2021.02.13 |
백준 - 2798 블랙잭 (0) | 2021.02.11 |
백준 2920번 - 음계 (0) | 2021.02.11 |
SWEA SW 문제해결 Self Study Book Ⅰ 2차시 - Baby-Gin Game (0) | 2020.07.26 |