heap size < K면 비교 없이 넣는다.
Top-K 상태 전이는 fill, compare, replace/drop 세 가지다
K칸이 차기 전에는 넣고, 찬 뒤에는 새 값과 힙 루트만 비교한다.
heap[0]은 현재 Top-K의 경계값이다.
x > heap[0]이면 교체
x ≤ heap[0]이면 버림
| 예외 | 처리 | 이유 |
|---|---|---|
| K=0 | 빈 결과 | 유지할 후보 칸이 없다. |
| K>N | 가능한 값만 정렬 | 없는 후보를 채우지 않는다. |
| 동점 | score 외 보조 키 고정 | 출력 순서를 재현 가능하게 만든다. |
| window | 만료된 원소 제거 | 전역 Top-K와 섞이지 않는다. |
핵심: 루트는 “현재 살아남은 후보 중 가장 약한 값”이므로, 새 후보는 루트와만 비교하면 된다.