Baekjoon

2346. 풍선터뜨리기

영끼끼 2025. 2. 19. 16:55

https://www.acmicpc.net/problem/2346

✅ 문제를 잘 읽고 요구조건에 맞게 풀어야 합니다......

      예시 입력과 출력은 어떤 방식으로 하든 잘 구현이 됩니다..

 

import sys
sys.stdin = open('input.txt')
input = sys.stdin.readline
from collections import deque

N = int(input().strip())

dq = deque(range(1,N+1))

# 안에 들어있는 번호 ( N풍선이면 n-1 값이 들어가야함 ) 2번풍선 값은 1번 인덱스에 있는거임.
num = list(map(int, input().split()))
ans = []

# 제일처음에는 1번 풍선을 터뜨리고 안에있는 번호로 이동해서 한다. (원형임)

Pang_num = num[dq[0]-1]
ans.append(dq.popleft())

while dq:
    if Pang_num > 0:
        dq.rotate(-(Pang_num - 1))  # 양수일 때는 (Pang_num - 1)번 왼쪽 이동
    else:
        dq.rotate(-Pang_num)  # 음수일 때는 그대로 오른쪽 이동

    Pang_num = num[dq[0]-1] # 풍선안에있는 숫자를 다시 Pang_num 에 넣어준다. / 인덱스라서 -1
    ans.append(dq.popleft()) # 없애준다. 추가한다.

print(*ans)

'Baekjoon' 카테고리의 다른 글

2567. 색종이 - 2  (3) 2025.02.20
10709. 기상캐스터  (0) 2025.02.20
28279. 덱 2  (1) 2025.02.19
11866. 요세푸스 문제 0  (1) 2025.02.19
2164. 카드 2  (0) 2025.02.19