[LeetCode] 17. Letter Combinations of a Phone Number

Chobby·2024년 8월 22일
1

LeetCode

목록 보기
54/194

백트레킹을 활용하여 어렵지 않게 구현할 수 있는 문제이다.

현재 문자를 기준으로 가능한 조합을 모두 구하여 정답을 반환하면 해결된다.

😎풀이

function letterCombinations(digits: string): string[] {
    if(digits.length === 0) return []
    const result = []
    const keyPad = {
        "2": "abc",
        "3": "def",
        "4": "ghi",
        "5": "jkl",
        "6": "mno",
        "7": "pqrs",
        "8": "tuv",
        "9": "wxyz"
    }

    function backTracking(combination: string, remainDigits: string) {
        if(remainDigits.length === 0) {
            result.push(combination)
        } else {
            const curDigit = remainDigits[0]
            const padStr = keyPad[curDigit]
            
            for(let i = 0; i < padStr.length; i++) {
                const char = padStr[i]
                backTracking(combination + char, remainDigits.slice(1))
            }
        }
    }

    backTracking("", digits)

    return result
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글