[Leetcode] 1935. Maximum Number of Words You Can Type

RexiaN·2025년 9월 15일

몇 개의 키가 고장난 키보드가 있다. 그리고 타이핑 해야하는 문자열이 있다. single space 로 구분되는 text 에서 고장난 키 때문에 입력이 불가능한 문자열들을 제외하고 입력 가능한 단어의 개수만을 고르면 된다.

고장난 키는 Set 으로 만들어 탐색에 O(1) 의 시간이 걸리게 만든다.

.split() 으로 text 를 배열로 만들어 준뒤 .forEach() 를 돌려서 각 단어를 꺼낸다. 해당 단어의 길이에 맞는 for 문을 돌리면서 고장난 키가 있다면 바로 break, 없으면 단어의 맨 마지막에서 count 를 하나 올려준다.

이후 count 값을 리턴하면 끝.

function canBeTypedWords(text: string, brokenLetters: string): number {
    const brokenLettersSet = new Set(brokenLetters.split(''))

    if (brokenLettersSet.size === 26) {
        return 0
    }

    const textList = text.split(' ')
    let count = 0

    textList.forEach(t => {
        for (let i = 0; i < t.length; i++) {
            if (brokenLettersSet.has(t[i])) {
                break
            }

            if (i === t.length - 1) {
                count += 1
            }
        }
    })

    return count
};

profile
Don't forget Rule No.1

0개의 댓글