
안녕하세요 !
오늘은 백준 - 풍선 터뜨리기 문제를 가져왔습니다.

문제를 해결한 방법은 다음과 같습니다.
- 입력을 받아주고 풍선을 만들어줍니다.
- 반복문을 수행하며 풍선의 순서를 출력합니다.
- 풍선 안 종이에 적힌 숫자를 저장하고 풍선을 터뜨립니다.
- 풍선을 다 터뜨렸을 때 반복문을 멈추는 종료 조건을 만들어줍니다.
- 풍선을 이동합니다.
n = int(sys.stdin.readline().strip()) arr = list(map(int, sys.stdin.readline().strip().split())) num = [] for i in range(n): num.append(i+1)
p = 0 for i in range(n): print(num[p], end = " ")
이때, 풍선의 순서가 담긴 배열에서도 똑같이 pop을 해줍니다.
next = arr[p] arr.pop(p) num.pop(p)
if len(arr) == 0: break
테스트케이스로 하나하나 수행하다보면 종이에 적힌 숫자가 0보다 크면 실제 적힌 숫자보다 -1만큼 이동하고 종이에 적힌 숫자가 0보다 작으면 실제 적힌 숫자만큼 이동한다는 규칙을 알 수 있습니다.
if next > 0: p = (p + next -1) % len(arr) else: p = (p + next) % len(arr)
import sys
n = int(sys.stdin.readline().strip())
arr = list(map(int, sys.stdin.readline().strip().split()))
num = []
for i in range(n):
num.append(i+1)
p = 0
for i in range(n):
print(num[p], end = " ")
next = arr[p]
arr.pop(p)
num.pop(p)
if len(arr) == 0:
break
if next > 0:
p = (p + next -1) % len(arr)
else:
p = (p + next) % len(arr)