
😎풀이
ransomNote
의 문자 빈도 저장
magazine
의 문자 빈도 저장
- 문자 빈도를 비교하며, 맞지 않을 경우
false
반환
- 모든 문자가 포함될 수 있다면
true
반환
function canConstruct(ransomNote: string, magazine: string): boolean {
const ransomMap = new Map<string, number>()
for(const char of ransomNote) ransomMap.set(char, (ransomMap.get(char) ?? 0) + 1)
const magazineMap = new Map<string, number>()
for(const char of magazine) magazineMap.set(char, (magazineMap.get(char) ?? 0) + 1)
for(const [key, value] of ransomMap) {
if(!magazineMap.has(key)) return false
if(magazineMap.get(key) < value) return false
}
return true
};