1.문제
There is a malfunctioning keyboard where some letter keys do not work. All other keys on the keyboard work properly.
Given a string text of words separated by a single space (no leading or trailing spaces) and a string brokenLetters of all distinct letter keys that are broken, return the number of words in text you can fully type using this keyboard.
하나의 공백으로 구분된 text와 고장난 키보드 철자인 brokenLetters 가 주어질 때 text의 word 중 typing을 할 수 있는 단어의 수를 리턴하는 문제이다.
Example 1
Input: text = "hello world", brokenLetters = "ad"
Output: 1
Explanation: We cannot type "world" because the 'd' key is broken.
Example 2
Input: text = "leet code", brokenLetters = "lt"
Output: 1
Explanation: We cannot type "leet" because the 'l' and 't' keys are broken.
Example 3
Input: text = "leet code", brokenLetters = "e"
Output: 0
Explanation: We cannot type either word because the 'e' key is broken.
Constraints:
- 1 <= text.length <= 10^4
- 0 <= brokenLetters.length <= 26
- text consists of words separated by a single space without any leading or trailing spaces.
- Each word only consists of lowercase English letters.
- brokenLetters consists of distinct lowercase English letters.
2.풀이
- text 를 공백 기준으로 단어단위로 배열로 만든다.
- 각 단어에 고장난 키보드 철자가 포함되는지 체크한다.
/**
* @param {string} text
* @param {string} brokenLetters
* @return {number}
*/
const canBeTypedWords = function (text, brokenLetters) {
text = text.split(" ");
brokenLetters = brokenLetters.split(""); // 고장난 키보드 철자
let count = text.length;
text.forEach((txt) => {
for (let i = 0; i < brokenLetters.length; i++) {
if (txt.includes(brokenLetters[i])) {
// 단어에 고장난 키보드 철자가 포함되어있으면 count - 1
count--;
break;
}
}
});
return count;
};
