
😎풀이
- 각 행의 알파벳을 입력한
Set
생성
words
순회
2-1. targetWord
: 각 word
의 소문자 구성 정의
2-2. isValid
: 현재 문자가 올바른지
2-3. 현재 문자가 하나의 행으로 모두 이루어질 수 있다면 result
에 추가
result
반환
function findWords(words: string[]): string[] {
const firstRow = new Set([...'qwertyuiop'])
const secondRow = new Set([...'asdfghjkl'])
const thirdRow = new Set([...'zxcvbnm'])
const result = []
for(const word of words) {
const targetWord = word.toLowerCase()
let isValid = true
if(firstRow.has(targetWord[0])) {
for(const char of targetWord) {
if(!firstRow.has(char)) {
isValid = false
break
}
}
} else if(secondRow.has(targetWord[0])) {
for(const char of targetWord) {
if(!secondRow.has(char)) {
isValid = false
break
}
}
} else if(thirdRow.has(targetWord[0])) {
for(const char of targetWord) {
if(!thirdRow.has(char)) {
isValid = false
break
}
}
}
if(isValid) result.push(word)
}
return result
};