코테

(코테) [Java] Deque

그린티_ 2025. 5. 15. 17:39
반응형

📚 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