다른 사람들 코드를 보면 enumerate와 deque의 rotate를 활용했다. 하지만 나는 enumerate는 떠올리지 못했고.. rotate라는 함수도 알지 못했기에 요세푸스 문제처럼 풀었다. 그리고 enumerate와 rotote도 활용해 보았다.
import sys
from collections import deque
input = sys.stdin.readline
N = int(input())
num = list(map(int, input().split()))
queue = deque([i+1 for i in range(N)])
result = []
result.append(queue.popleft())
while queue:
if num[result[-1]-1] > 0:
for _ in range(num[result[-1]-1] - 1):
queue.append(queue.popleft())
result.append(queue.popleft())
else:
for _ in range(-(num[result[-1]-1]) - 1):
queue.appendleft(queue.pop())
result.append(queue.pop())
print(*result)
import sys
from collections import deque
input = sys.stdin.readline
N = int(input())
queue = deque(enumerate(map(int, input().split())))
result = []
balloon, paper = queue.popleft()
result.append(balloon+1)
while queue:
if paper > 0:
for _ in range(paper - 1):
queue.append(queue.popleft())
balloon, paper = queue.popleft()
else:
for _ in range(-paper - 1):
queue.appendleft(queue.pop())
balloon, paper = queue.pop()
result.append(balloon+1)
print(*result)

import sys
from collections import deque
input = sys.stdin.readline
N = int(input())
queue = deque(enumerate(map(int, input().split()), start=1))
result = []
while queue:
balloon, paper = queue.popleft()
result.append(balloon)
if paper > 0:
queue.rotate(-(paper-1))
else:
queue.rotate(-paper)
print(*result)

