2346. 풍선 터뜨리기

sen·2021년 7월 23일
0

BOJ

목록 보기
15/38
post-thumbnail

문제

백준 2346번 풍선 터뜨리기


풀이

덱을 사용하는 문제.
가중치cnt가 양수, 음수 모두 있기 때문에 양수일 경우에는 -1을 해줘야 해당 풍선에 도착했을 때 cnt == 0의 조건을 만족할 수 있다.

처음에 1번 풍선을 터뜨릴 때 양수일 때만 -1을 했어야하는데 그냥 -1을 해서 틀렸었다.
왜 틀린지 한참 찾다가 직접 케이스 넣어보고 알았음;

from collections import deque

n = int(input())
nxt = list(map(int, input().split()))
dq = deque((i+1, nxt[i]) for i in range(n))

balloon, cnt = dq.popleft()
if cnt > 0: cnt -= 1
print(balloon, end=' ')
while dq:
    if cnt == 0:
        balloon, cnt = dq.popleft()
        if cnt > 0: cnt -= 1
        print(balloon, end=' ')
    elif cnt > 0:
        dq.append(dq.popleft())
        cnt -= 1
    else:
        dq.appendleft(dq.pop())
        cnt += 1
profile
공부 아카이브

0개의 댓글