반응형
스케치
문제 풀이
n = int(input())
result = []
st = [] # 스택
count = 0 # 몇번 째 숫자까지 스택에 넣었는지 알기 위함
flag = True
for _ in range(n):
x = int(input()) # 스택에서 꺼내야하는 숫자
while count < x: # x 숫자까지는 스택에 쌓아야 pop으로 빼낼 수 있다.
count += 1
result.append('+')
st.append(count)
if x == st[-1]: # 스택에서 꺼내야 하는 값 x가 실제 스택에 들어있는지 체크
result.append('-')
st.pop()
else:
flag = False
if flag:
for i in result:
print(i)
# print( [i for i in result] ) ['+', '+', '+', '-', '+', '-']
else :
print('NO')
'코딩테스트 > 파이썬' 카테고리의 다른 글
[백준] 바이러스 2606 (파이썬) (0) | 2021.03.12 |
---|---|
[백준] 피보나치 함수 분류 1003 (파이썬) (0) | 2021.03.12 |
[백준] 균형잡힌 세상 4949 (파이썬) (0) | 2021.03.10 |
[백준] 회전하는 큐 1021 (파이썬) (0) | 2021.03.10 |
[백준] 나무자르기 2805 (파이썬) (0) | 2021.03.09 |