반응형
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()` 하기 바빴는데
다음에 꼭 써봐야겠다
반응형
'취준 > 코딩테스트' 카테고리의 다른 글
백준 11050 (python): 이항 계수 1 (0) | 2024.07.04 |
---|---|
백준 15439 (python): 팩토리얼 (0) | 2024.07.02 |
백준 28279 (python): 덱2 (0) | 2024.06.25 |
백준 11866 (python): 요세푸스 문제 0 (0) | 2024.06.24 |
백준 2164 (python): 카드2 (0) | 2024.06.24 |