
😎풀이
word1, word2의 단어 빈도 확인
word1의 단어 빈도를 순회하며, word2의 단어 빈도와 차이가 3 이상인 경우 false를 반환
word2의 단어 빈도를 순회하며, word1의 단어 빈도와 차이가 3 이상인 경우 false를 반환
- 모든 단어의 차이가 3이상 차이나지 않는 경우
true를 반환한다.
function checkAlmostEquivalent(word1: string, word2: string): boolean {
const frequent1 = new Map()
const frequent2 = new Map()
for(let i = 0; i < word1.length; i++) {
const char1 = word1[i]
const char2 = word2[i]
frequent1.set(char1, (frequent1.get(char1) ?? 0) + 1)
frequent2.set(char2, (frequent2.get(char2) ?? 0) + 1)
}
for(const [key, freq1] of frequent1) {
const freq2 = frequent2.get(key) ?? 0
const gap = Math.abs(freq1 - freq2)
if(gap > 3) return false
}
for(const [key, freq2] of frequent2) {
const freq1 = frequent1.get(key) ?? 0
const gap = Math.abs(freq1 - freq2)
if(gap > 3) return false
}
return true
};