반응형
📚 Deque (덱) - 양쪽에서 삽입/삭제 가능한 자료구조
"Queue의 확장판, 양방향 큐"
✅ 개념 요약
- *Deque (Double-Ended Queue)**는 앞/뒤 모두에서 삽입과 삭제가 가능한 큐
- 양방향 입출력 지원
- 기본 연산:
- addFirst(x) / offerFirst(x) : 앞에 삽입
- addLast(x) / offerLast(x) : 뒤에 삽입
- pollFirst() / removeFirst() : 앞에서 제거
- pollLast() / removeLast() : 뒤에서 제거
- peekFirst() / peekLast() : 앞/뒤 값 조회
Java 코드 예시
import java.util.Deque;
import java.util.LinkedList;
public class DequeExample {
public static void main(String[] args) {
Deque<Integer> deque = new LinkedList<>();
deque.offerFirst(10); // [10]
deque.offerLast(20); // [10, 20]
deque.offerFirst(5); // [5, 10, 20]
System.out.println(deque.pollFirst()); // 5
System.out.println(deque.pollLast()); // 20
}
}
덱 활용 예시
- 슬라이딩 윈도우 최댓값/최솟값 문제
- 회전 큐 문제
- Deque로 Stack/Queue 기능을 모두 구현 가능
참고: ArrayDeque는?
Deque<Integer> deque = new ArrayDeque<>();
- ArrayDeque는 LinkedList보다 더 빠르고 효율적
- 단점: null 요소 저장 불가
반응형
'코테' 카테고리의 다른 글
| (코테) [Java] 재귀 (1) | 2025.05.20 |
|---|---|
| (코테) [Java] Heap (1) | 2025.05.15 |
| (코테) [Java] Queue (0) | 2025.05.15 |
| (코테) [Java] Stack (0) | 2025.05.15 |
| (코테) [Java] 형변환 (0) | 2025.05.13 |