백준 2346 - 풍선 터트리기
- 풍선의 갯수 N < 1000 으로 메모리 이슈가 크게 있을 것 같지는 않음
- deque의 rotate 메소드를 이용하는 문제
문제 풀이
from collections import deque
N = int(input())
balloon = list(map(int, input().split()))
answer = []
b = deque([(i + 1, num) for i, num in enumerate(balloon)])
while True:
(idx, cur) = b.popleft()
answer.append(idx)
if cur > 0:
b.rotate(-(cur - 1))
else:
b.rotate(-cur)
if not b:
break
print(' '.join(map(str, answer)))
테스트 케이스
balloon = [3, 2, 1, -3, -1] -> 1 4 5 3 2
balloon = [1, 1, 1, 1, 1] -> 1 2 3 4 5
balloon = [-1, -1, -1, -1, -1] -> 1 5 4 3 2