
😎풀이
word 순회
1-1. 각 문자 빈도 저장
- 저장된 빈도 순회
2-1. 사본 생성
2-2. 빈도가 1인 경우, 해당 문자 삭제
2-3. 빈도가 1이 아닌 경우, 1 감소
2-4. 모든 문자가 동일한 빈도를 갖는지 확인
- 어떤 문자 빈도에서 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
}