Python
[Python/파이썬] 백준 #2346 풍선 터뜨리기
Doldoi
2025. 3. 20. 01:14
문제 링크: https://www.acmicpc.net/problem/2346
문제
코드
from collections import deque
n = int(input())
nums = list(map(int, input().split()))
circle = deque([i for i in range(n)])
order = []
while circle:
current = circle.popleft()
order.append(current+1)
move = nums[current]
if move > 0:
circle.rotate(-move+1)
else:
circle.rotate(-move)
print(*order)
위의 코드에서 사용한 deque.rotate(n)은 collections.deque 객체에서 사용하는 메소드로, 리스트의 원소를 순환 이동 시킨다.
[1, 2, 3, 4, 5] 에서
rotate(2)를 하면 오른쪽으로 2칸 이동
[4, 5, 1, 2, 3]
rotate(-2)를 하면 왼쪽으로 2칸 이동
[3, 4, 5, 1, 2]
이런 식으로 rotate()의 인자가 양수인지 음수인지에 따라 방향이 바뀐다.