📍문제 링크
https://www.acmicpc.net/problem/2346
📍알고리즘 분류
- 자료구조
- 덱
📍문제 풀이
- 1부터 N까지의 원형 리스트가 있고, 각 원소는 -N 부터 N 중 0을 제외한 정수를 값으로 갖는다
1부터 시작하여 각 정수만큼 왼쪽, 오른쪽으로 이동하며 터지는 풍선의 번호를 순서대로 출력한다
📍코드
from collections import deque
N = int(input())
# list로는 바로 생성 불가
d = deque(enumerate(map(int, input().split())))
answer = []
while d:
idx, move = d.popleft()
answer.append(idx + 1)
if move > 0:
d.rotate(1 - move) # popleft 하기 때문에 1회 덜 시행
elif move < 0:
d.rotate(-move)
print(" ".join(map(str, answer)))
참고
https://docs.python.org/ko/3/library/collections.html#collections.deque