취준/코딩테스트
백준 2346 (python): 풍선 터뜨리기
린구
2024. 6. 26. 15:03
반응형
import sys
from collections import deque
def breakBalloon(num):
if num > 0:
for _ in range(num-1):
q.append(q.popleft())
else:
num = -num
for _ in range(num):
q.appendleft(q.pop())
print(q[0], end = " ")
return q.popleft()
N = int(input())
q = deque([i for i in range(1, N+1)])
paperList = list(map(int, sys.stdin.readline().split()))
print(1, end = " ")
answer = breakBalloon(paperList[q.popleft() - 1])
while q:
answer = breakBalloon(paperList[answer - 1])
함수 선언해서 해봤는데 이게 더 복잡한 것 같다.. ㅋㅋㅋ
이것도 다른 덱 류와 같이 패턴 찾기 문제!
그런데 이렇게 할 필요 없이 `rotate()` 메서드를 사용하면 훨씬 간단하게 구현할 수 있다.
deque.rotate()
rotate(-1)은 원형 큐를 반시계방향으로 1칸 회전시키고,
rotate(1)은 시계방향으로 1칸 회전시킨다.
대박.. 항상 `pop()` 하고 `append()` 하기 바빴는데
다음에 꼭 써봐야겠다
반응형