몇 개의 키가 고장난 키보드가 있다. 그리고 타이핑 해야하는 문자열이 있다. 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
};
