빈도 계산 흐름

원본을 바로 세지 말고 키 정책부터 고정한다

빈도 문제는 입력 정제, 맵 누적, 셋 판정, 결과 정렬을 분리하면 Top-K와 중복 탐지로 쉽게 확장됩니다.

1

normalize

대소문자, 공백, 결측값 처리 규칙을 먼저 적용합니다.

2

count

맵에 `key -> count`를 누적해 고유 키 수 `U`를 분리합니다.

3

filter

중복, 최소 빈도, 제외 키 같은 정책을 한 곳에서 적용합니다.

4

rank

정렬 또는 힙으로 동점 기준까지 고정한 결과를 만듭니다.

구조 선택

Map 횟수, 합계, 마지막 위치처럼 값을 붙일 때 사용
Set 이미 본 값인지 빠르게 판정할 때 사용

복잡도 읽기

입력 크기 `N`, 고유 키 수 `U`, 필요한 상위 개수 `K`를 나누면 `O(N)`, `O(U)`, `O(U log K)`의 병목 위치가 바로 보입니다.