Map/Set decision

정규화 키를 만든 뒤 필요한 정보량으로 갈라진다

문자열 표기 차이를 먼저 같은 key로 모은 뒤, 값이 필요한지 여부에 따라 Set과 Map을 선택한다.

1 normalize

비교용 키 만들기

" Apple " → "apple"
2 decide

존재만 보면 Set

seen.has(key)
3 count

횟수·위치가 필요하면 Map

freq[key] += 1
질문구조저장값대표 사용처
이미 본 적 있는가?Setkey만 저장중복 제거, 방문 체크
몇 번 나왔는가?Mapkey → count빈도, Top-K 후보
마지막 위치가 필요한가?Mapkey → index가장 긴 구간, 최근 갱신
상위 K개만 필요한가?Map + Heapcount와 후보K개 유지, 전체 정렬 회피

핵심: 정규화 전에는 비교하지 않고, 정규화 후에는 필요한 정보량만큼만 저장한다.