이채림 2024. 10. 30. 17:18

 

이 문제는 큐의 양쪽 끝에서 삽입과 삭제, 조회가 필요하다.

일반적인 Queue가 아닌 Deque로 해결하는 것이 적합하다.

 

 

 

(Queue는 한쪽 끝에서만 삽입하고, 반대쪽 끝에서만 삭제 가능)

Deque의 주요 특징

  • 양쪽 끝에서 데이터를 추가하거나 제거할 수 있는 자료구조이다.
  • Java에서 Deque 인터페이스를 통해 이러한 양방향 큐를 지원하며, 이를 구현하는 대표적인 클래스는 LinkedList와 ArrayDeque이다.
  • 큐와 스택의 기능을 동시에 지원한다. 
    • 한쪽 끝에서만 삽입/삭제하면 스택처럼 사용
    • 양쪽 끝에서 삽입/삭제를 사용하면 양방향 큐처럼 사용 가능
  • 메서드
    • addFirst() : 큐 앞쪽에 요소 추가
    • removeFirst() : 큐 앞쪽 요소 제거
    • peekFirst() : 큐 앞쪽 요소 확인
    • addLast() : 큐 뒤쪽에 요소 추가
    • removeLast() : 큐 뒤쪽 요소 제거
    • peekLast() : 큐 뒤쪽 요소 확인