피드로 돌아가기
Sliding Window Maximum | Monotonic Deque
Dev.toDev.to
Backend

Monotonic Deque 도입을 통한 Sliding Window Maximum 시간 복잡도 O(N·K)에서 O(N)으로 최적화

Sliding Window Maximum | Monotonic Deque

Jaspreet singh2026년 6월 27일4intermediate

Context

고정 크기의 윈도우 내 최댓값을 탐색하는 과정에서 모든 요소를 반복 스캔하는 Brute Force 방식 사용. 윈도우 이동 시 중복 계산이 발생하여 입력 크기 N과 윈도우 크기 K에 비례하는 O(N × K)의 비효율적인 시간 복잡도 노출.

Technical Solution

  • 불필요한 후보군 제거를 위한 Monotonic Deque 구조 설계
  • 윈도우 범위를 벗어난 인덱스를 Deque 전면에서 제거하는 Window Boundary 관리
  • 신규 요소 진입 시 해당 값보다 작은 기존 요소를 Deque 후면에서 모두 제거하여 내림차순 상태 유지
  • 항상 Deque의 Front에 현재 윈도우의 최댓값이 위치하도록 보장하는 Candidate Filtering 로직 구현
  • 모든 요소의 삽입과 삭제가 최대 1회로 제한되는 선형 시간 처리 구조 채택

1. 고정 크기 윈도우 내 극값 탐색 요구사항 확인

2. 단순 반복문 대신 Monotonic Deque 도입 검토

3. 윈도우 경계 밖 인덱스의 즉각적인 제거 로직 포함 여부 확인

4. 신규 데이터 진입 시 기존 후보군과의 비교를 통한 최적 상태 유지 구조 설계

원문 읽기