Koala - 10기/코딩테스트 준비 스터디

[백준/Python] 2346 풍선 터뜨리기

긍살:D 2023. 5. 7. 23:39

문제링크

https://www.acmicpc.net/problem/2346

 

2346번: 풍선 터뜨리기

1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선

www.acmicpc.net


 

코드

from collections import deque
n = int(input())
q = deque(enumerate(map(int,input().split())))
while q:
    idx,num = q.popleft()
    print(idx+1,end=' ')
    if num>0:
        q.rotate(-(num-1))
    else:
        q.rotate(-num)

문제풀이

deque를 이용하여 문제설명대로 구현하였다. 적혀있는 숫자만큼 이동할때는 rotate함수를 이용하였다.

또한 enumrate를 사용하여 인덱스 정보를 같이 저장하였다.

유의할 점은 적혀있는 숫자가 0이상이면 적혀있는 숫자 -1 번 돌려야한다는 것 정도이다.