본문 바로가기

알고리즘 문제풀이

풍선 터뜨리기[백준 2346]

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)))

'알고리즘 문제풀이' 카테고리의 다른 글

쇠막대기[백준 10799]  (0) 2024.07.16
도키도키 간식드리미[백준 12789]  (1) 2024.07.11
스택 2 [백준 28278]  (0) 2024.07.09
골드바흐 파티션[백준 17103]  (0) 2024.07.09
최소공배수 [백준 13241]  (0) 2024.07.09