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 |