본문 바로가기
코딩테스트/파이썬

[백준] 스택 수열 1874 (파이썬)

by 커피는아아 2021. 3. 10.
반응형

스케치

문제 풀이

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')