문제설명
1번부터 n번까지의 풍선을 1번부터 터트려서 그 안에 나와있는 숫자만큼 이동한뒤에 그 풍선을 터트릴 때 풍선이 터지는 순서를 출력하는 문제입니다.
작동 순서
1. 풍선의 개수를 입력받습니다.
2. deque에 풍선의 번호를 입력합니다.
3. 배열에 풍선 안에 적힌 숫자들을 저장합니다.
4. 풍선을 1번부터 터트린 뒤 그 안에 들어있는 숫자에 따라 deque를 회전시키고 다음 풍선을 터트립니다.
소스코드
from collections import deque
import sys
N = int(sys.stdin.readline())
n = deque()
arr = list(map(int, sys.stdin.readline().split()))
for i in range(1, N+1):
n.append(i)
count = 0
while True:
if len(n) == N:
output = n.popleft()
else:
if arr[output-1] > 0:
output = n.popleft()
else:
output = n.pop()
if len(n) == 0:
break
print(output, end=" ")
if arr[output-1] > 0:
while count < arr[output-1]-1:
count += 1
n.append(n.popleft())
else:
while count > arr[output-1]+1:
count -= 1
n.appendleft(n.pop())
count = 0
print(output, end="")