키 우선 고정
문자열을 그대로 쓸지, 정렬할지, 소문자로 바꿀지, 좌표를 튜플로 묶을지 결정합니다.
key빈도 문제에서 가장 흔한 오답은 자료구조 선택보다 키를 어떻게 표준화하고, 증가·감소·삭제를 어느 시점에 처리하는지에서 나옵니다. 같은 문자라도 대소문자, 정렬, 중복 허용 정책이 다르면 완전히 다른 키가 됩니다.
문자열을 그대로 쓸지, 정렬할지, 소문자로 바꿀지, 좌표를 튜플로 묶을지 결정합니다.
key삽입, 감소, 0이 된 키 삭제를 같은 루프 안에서 명확히 처리해야 stale key가 남지 않습니다.
update최빈값, Top-K, 그룹화에서는 빈도가 같을 때 원래 순서나 사전순을 어떻게 둘지 정합니다.
tie전체 반복 횟수와 키 생성 비용, 해시 충돌 가능성을 나누어 계산합니다.
costconst count = new Map();
for (const x of items) {
const key = normalize(x);
count.set(key, (count.get(key) ?? 0) + 1);
overflow-wrap: break-word;
word-break: keep-all;
}