bj 1874 스택수열

coh·2022년 6월 7일
0

백준

목록 보기
18/27

어제 처음 보고 문제 이해가 안 되었던 게 기억이 남.
그래서 그냥 아 내일 봐야지 하고 있다가 오늘 일어나서 문제를 보니 이해가 되었다. ㅋㅋㅋ 할많하않.. 그리고 stack을 이제부턴 그냥 list를 이용해서 할 거임. 마찬가지로 deque도 그냥 module 가져올 거임.

  1. 우선 스택 수열 인자가 주어지면 그 인자까지 포함시켜서 append를 해야겠다는 생각을 했음. 이 때 현재 어디까지 append 했는지 저장할 변수 a를 이용함. 첨에 if 와 for를 이용했는데 while을 쓰면 더 편하겠다는 것을 나중에 깨달음...

  2. append 후에는 바로 pop을 해줘야함. 이때 조건으로 가장 위의 스택이 우리가 pop하려는 숫자와 같은지를 check함. 같으면 pop!

  3. 다르면 'NO'를 append하고 break를 진행했음.

n = int(input())
result = []
a = 1
data = []
for i in range(n):
    card = int(input())
    while a <= card:
        result.append(a)
        data.append('+')
        a += 1
    if card == result[-1]:
        result.pop()
        data.append('-')
    else:
        data.append('NO')
        break

if data[-1] == 'NO':
    print('NO')
else:
    for i in range(len(data)):
        print(data[i])
profile
Written by coh

0개의 댓글