본문 바로가기

Programming Language/Python

Python - 데크(deque)의 개념

728x90
반응형

데크(deque) - Python

: 보통 큐(queue)는 선입선출(FIFO) 방식으로 작동한다. 이 때, 양방향 큐(queue)가 존재하는데 이것을 데크(deque)라고 부른다.

즉, 앞 뒤 양쪽 방향에서 엘리먼트(element)를 추가하거나 제거할 수 있기 때문에 append와 pop이 압도적으로 빠르다.

일반적인 리스트 O(n) > 데크 O(1)

 

 

데크 사용법

from collections import deque	# 라이브러리 사용

deq = deque()

# 아이템을 데크의 왼쪽 끝에 삽입
deq.appendleft(10)

# 아이템을 데크의 오른쪽 끝에 삽입
deq.append(0)

# 데크의 왼쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제함
deq.popleft()

#데크의 오른쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제함
deq.pop()

 

 

rotate() 메서드 활용

# 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])

 


"스택과 큐의 기능을 한번에 가지고 있음"

728x90
반응형