[Python] When we use deque ?
2024. 2. 18. 13:26ㆍ코딩
deque는 무엇인가?
"deque"는 파이썬의 collections 모듈에 있는 자료구조 중 하나이다.
"deque"는 "double-ended queue"의 약자로, 큐(queue)의 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조이다.

deque는 리스트(list)와 비슷하지만 몇 가지 측면에서 다른데, 주요 특징과 사용 사례는 다음과 같다:
- 양방향 삽입 및 삭제: "deque"는 양쪽 끝에서 원소의 삽입과 삭제가 빠르게 이루어진다. 이는 큐의 FIFO(First-In-First-Out)와 스택의 LIFO(Last-In-First-Out) 모두를 지원한다.
- 고정된 크기의 큐: "deque"는 최대 길이(maxlen) 매개변수를 사용하여 큐의 최대 크기를 제한할 수 있다. 큐가 가득 찬 경우에는 새로운 요소를 삽입하기 위해 큐의 반대쪽에서 요소를 제거한다.
- 회전(Rotation): "deque"는 rotate() 메서드를 사용하여 요소를 회전시킬 수 있다. 이는 리스트나 다른 자료구조에서 요소를 옮길 때 유용하다.
deque의 활용 사례 ?
- 큐(queue)나 스택(stack)과 같은 일반적인 데이터 구조의 구현
- 최근에 사용된 요소에 빠르게 접근해야 하는 경우 (예: 최근 검색어 목록)
- 고정된 크기의 데이터 셋을 관리하는 경우
Stack이랑 뭐가달라요? deque와 Stack 의 차이점?
- 구조 및 동작 방식:
- "deque": 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조이다. 큐와 스택 모두를 결합한 것으로 생각할 수 있다.
- 스택(Stack): 후입선출(Last-In-First-Out, LIFO) 구조를 가지며, 가장 최근에 추가된 요소가 가장 먼저 제거된다.
- 삭제 및 삽입 방식:
- "deque": 양쪽 끝에서 요소의 삽입과 삭제가 가능하다. 따라서 처음과 끝 모두에서 빠르게 삽입 및 삭제할 수 있다.
- 스택(Stack): 요소는 스택의 맨 위에만 삽입되고 삭제된다.
- 활용:
- "deque": 양쪽 끝에서의 삽입 및 삭제가 필요한 상황에 유용하다. 큐(Queue)나 스택(Stack)을 모두 구현할 수 있으며, 양쪽 끝에서의 연산이 필요한 다양한 알고리즘에 사용될 수 있다.
- 스택(Stack): 주로 후입선출(LIFO) 구조로 데이터를 처리하는 상황에 사용된다. 함수 호출의 호출 스택, 수식의 후위 표기법 변환, 웹 브라우저의 뒤로 가기 버튼 등에 활용된다.
'코딩' 카테고리의 다른 글
| [Python] Talking about DFS , backtracking algorithm (0) | 2024.02.13 |
|---|---|
| [Python] baekjoon 7785 : 회사에 있는 사람 (0) | 2024.02.13 |
| [Python] Stack and Queue (0) | 2024.02.13 |
| [Python] 당신이 파이썬 가상환경을 사용해야하는 이유 (0) | 2024.02.05 |