알고리즘 문제풀이

풍선 터뜨리기[백준 2346]

wiojfe 2024. 7. 10. 17:14

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

 

 

deque의 rotate를 이용하면 쉽게 문제를 풀면 된다. 

from collections import deque

# 입력 처리
n = int(input())
arr = list(map(int, input().split()))

# deque 초기화
que = deque()
for i in range(n):
    que.append((i + 1, arr[i]))

ans = []

while que:
    idx, move = que.popleft()
    ans.append(idx)

    if not que:
        break

    # move가 양수일 때와 음수일 때 이동 처리
    if move > 0:
        que.rotate(-(move - 1))
    else:
        que.rotate(-move)

# 결과 출력
print(" ".join(map(str, ans)))