[LeetCode] 2423. Remove Letter To Equalize Frequency

Chobby·2025년 10월 29일
1

LeetCode

목록 보기
732/760

😎풀이

  1. word 순회
    1-1. 각 문자 빈도 저장
  2. 저장된 빈도 순회
    2-1. 사본 생성
    2-2. 빈도가 1인 경우, 해당 문자 삭제
    2-3. 빈도가 1이 아닌 경우, 1 감소
    2-4. 모든 문자가 동일한 빈도를 갖는지 확인
  3. 어떤 문자 빈도에서 1을 감소시켜도 동일한 빈도를 갖지 않음
function equalFrequency(word: string): boolean {
    const freqMap = new Map<string, number>()
    for(const char of word) {
        freqMap.set(char, (freqMap.get(char) ?? 0) + 1)
    }
    for(const [key, value] of freqMap) {
        const copied = new Map(freqMap)
        if(value === 1) {
            copied.delete(key)
        } else {
            copied.set(key, value - 1)
        }
        const freqValues = [...copied.values()]
        const allSame = freqValues.every((a) => a === freqValues[0])
        if(allSame) return true
    }
    return false
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글