[파이썬] 데크 (Deque)의 개념과 활용

데크 (Deque), 덱이라고도 불리는 Double-ended Queue는 데이터의 삽입 및 삭제가 양쪽 끝에서 모두 가능한 자료구조입니다. 이러한 특징 때문에 스택(Stack)과 큐(Queue)의 기능을 모두 갖고 있어 다양한 상황에서 유용하게 활용될 수 있습니다. 이번 포스트에서는 데크의 개념과 파이썬을 이용한 활용 방법에 대해 알아보겠습니다.

데크의 개념

데크는 양쪽 끝에서의 삽입과 삭제가 모두 가능한 자료구조입니다. 이러한 특성으로 인해, 데크는 큐와 스택의 장점을 모두 갖게 됩니다. 예를 들어, 양쪽 끝에서 데이터를 삽입 및 삭제할 수 있기 때문에 데크는 양방향 큐(Bidirectional Queue)라고도 불리기도 합니다.

데크는 보통 배열(Array)나 연결 리스트(Linked List)로 구현될 수 있습니다. 파이썬에서는 collections 모듈의 deque 클래스를 사용하여 데크를 구현하고 활용할 수 있습니다.

데크의 활용

데크는 다양한 상황에서 유용하게 활용될 수 있습니다. 예를 들어, 다음과 같은 경우에 데크를 사용할 수 있습니다:

파이썬에서 데크 사용하기

파이썬에서는 collections 모듈의 deque 클래스를 사용하여 데크를 구현하고 활용할 수 있습니다. 다음은 데크를 생성하고 삽입/삭제하는 간단한 예제 코드입니다:

from collections import deque

# 데크 생성
deck = deque()

# 데크의 오른쪽에 데이터 삽입
deck.append(10)
deck.append(20)

# 데크의 왼쪽에 데이터 삽입
deck.appendleft(5)

# 데크의 오른쪽에서 데이터 삭제
deck.pop()

# 데크의 왼쪽에서 데이터 삭제
deck.popleft()

print(deck)  # 출력: deque([10])

위 예제 코드에서는 먼저 deque 객체를 생성한 후, append 메서드를 사용하여 오른쪽으로 데이터를 삽입하고, appendleft 메서드를 사용하여 왼쪽으로 데이터를 삽입하며, pop 메서드와 popleft 메서드를 사용하여 오른쪽과 왼쪽에서 데이터를 삭제합니다.

데크에 데이터를 삽입할 때는 appendappendleft 메서드를 사용하고, 데이터를 삭제할 때는 poppopleft 메서드를 사용합니다. 또한, 데크의 상태를 확인할 때는 print 함수를 사용하여 출력할 수 있습니다.

데크는 파이썬에서 다양한 자료구조를 구현하고 활용할 때 유용한 도구입니다. 다음 번에는 데크를 사용하여 실제 문제를 해결하는 예제를 다뤄보도록 하겠습니다.