[LeetCode] 1160. Find Words That Can Be Formed by Characters

Chobby·2025년 7월 11일
1

LeetCode

목록 보기
470/481

😎풀이

  1. chars의 문자 빈도 확인
  2. words 순회
    2-1. 각 문자의 문자 빈도 확인
    2-2. 모든 문자가 chars에 포함되어있는지 확인
    2-3. 모든 문자의 빈도가 chars 내에 있는지 확인
    2-4. 현재 단어의 길이를 총합에 추가
  3. 총합 반환
function countCharacters(words: string[], chars: string): number {
    let goodWordsLen = 0
    const charFrequent = new Map<string, number>()
    for(const char of chars) charFrequent.set(char, (charFrequent.get(char) ?? 0) + 1)
    for(const word of words) {
        let isGoodWord = true
        const wordFrequent = new Map<string, number>()
        for(const char of word) wordFrequent.set(char, (wordFrequent.get(char) ?? 0) + 1)
        for(const [key, value] of wordFrequent) {
            if(!charFrequent.has(key) || charFrequent.get(key) < value) {
                isGoodWord = false
                break
            }
        }
        if(isGoodWord) goodWordsLen += word.length
    }
    return goodWordsLen
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글