Koala - 10기/코딩테스트 준비 스터디
[백준/Python] 2346 풍선 터뜨리기
긍살:D
2023. 5. 7. 23:39
문제링크
https://www.acmicpc.net/problem/2346
2346번: 풍선 터뜨리기
1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선
www.acmicpc.net
코드
from collections import deque
n = int(input())
q = deque(enumerate(map(int,input().split())))
while q:
idx,num = q.popleft()
print(idx+1,end=' ')
if num>0:
q.rotate(-(num-1))
else:
q.rotate(-num)
문제풀이
deque를 이용하여 문제설명대로 구현하였다. 적혀있는 숫자만큼 이동할때는 rotate함수를 이용하였다.
또한 enumrate를 사용하여 인덱스 정보를 같이 저장하였다.
유의할 점은 적혀있는 숫자가 0이상이면 적혀있는 숫자 -1 번 돌려야한다는 것 정도이다.