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 |