양방향 큐
→ 앞, 뒤 양쪽 방향에서 엘리먼트를 추가하거나 제거 가능.
O(1)의 접근 시간복잡도
from collections import deque
deq = deque()
# Add element to the start
deq.appendleft(10)
# Add element to the end
deq.append(0)
# Pop element from the start
deq.popleft()
# Pop element from the end
deq.pop()
데크(deque)에 존재하는 메서드(method)
deque.append(item)
: item을 데크의 오른쪽 끝에 삽입한다.deque.appendleft(item)
: item을 데크의 왼쪽 끝에 삽입한다.deque.pop()
: 데크의 오른쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.deque.popleft()
: 데크의 왼쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.deque.extend(array)
: 주어진 배열(array)을 순환하면서 데크의 오른쪽에 추가한다.deque.extendleft(array)
: 주어진 배열(array)을 순환하면서 데크의 왼쪽에 추가한다.deque.remove(item)
: item을 데크에서 찾아 삭제한다.deque.rotate(num)
: 데크를 num만큼 회전한다(양수면 오른쪽, 음수면 왼쪽).rotate() 메서드(method)
# Contain 1, 2, 3, 4, 5 in deq
deq = deque([1, 2, 3, 4, 5])
deq.rotate(1)
print(deq)
# deque([5, 1, 2, 3, 4])
deq.rotate(-1)
print(deq)
# deque([1, 2, 3, 4, 5])
정말 대단하네요!