😎풀이

  1. 각 행의 알파벳을 입력한 Set 생성
  2. words 순회
    2-1. targetWord: 각 word의 소문자 구성 정의
    2-2. isValid: 현재 문자가 올바른지
    2-3. 현재 문자가 하나의 행으로 모두 이루어질 수 있다면 result에 추가
  3. 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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글