백준 2346 풍선 터뜨리기 문제를 풀고 생각나서 정리하는 deque.rotate()
deque(덱)은 양방향 큐라고 생각하면 이해하기 쉽다.
원래의 큐는 FIFO(First-In, First-Out)이지만 deque는 앞에서도 뒤에서도 요소를 제거할 수 있다.
from collections import deque
q = deque()
위 코드를 이용해서 deque를 사용할 수 있다.
item을 deque의 오른쪽 끝에 삽입한다.
q = deque([1, 2, 3, 4, 5])
q.append(6)
>>>deque([1, 2, 3, 4, 5, 6])
item을 deque의 왼쪽 끝에 삽입한다.
q = deque([1, 2, 3, 4, 5])
q.appendleft(6)
>>>deque([6, 1, 2, 3, 4, 5])
deque의 오른쪽 끝 요소를 가져오고, 삭제한다.
q = deque([1, 2, 3, 4, 5])
q.pop()
>>> 5
>>>deque([1, 2, 3, 4])
deque의 왼쪽 끝 요소를 가져오고, 삭제한다.
q = deque([1, 2, 3, 4, 5])
q.popleft()
>>> 1
>>>deque([2, 3, 4, 5])
deque에서 item을 찾아 삭제한다.
q = deque([1, 2, 3, 4, 5])
q.remove(3)
>>>deque([1, 2, 4, 5])
deque를 num만큼 회전한다.
이때 num > 0라면 시계방향, num<0라면 반시계방향으로 회전한다.
q = deque([1, 2, 3, 4, 5])
q.rotate(2)
>>> deque([4, 5, 1, 2, 3])
q = deque([1, 2, 3, 4, 5])
q.rotate(-2)
>>> deque([3, 4, 5, 1, 2])