집계 계약
짧은 빈도 코드도 키, 갱신, 출력 순서를 계약으로 고정한다
구현은 몇 줄이어도 계약이 없으면 결측, 동점, 정렬 순서에서 결과가 흔들립니다. 아래 3줄을 테스트 기준으로 둡니다.
계약
코드 기준
검산 질문
1. key
모든 비교는 정규화 키로만 한다
key = normalize(raw)
" Apple "과 "apple"이 같은가?
2. update
없는 키는 0에서 시작해 1씩 누적한다
freq[key] = (freq[key] ?? 0) + 1
빈 입력과 첫 등장이 안전한가?
3. output
동점일 때도 같은 순서로 낸다
count desc, key asc
같은 입력을 두 번 실행해도 출력이 같은가?
PASS 조건
결측값 정책
skip empty key
PASS 조건
중복 임계치
count >= 2
PASS 조건
Top-K 동점
(count, key)