백트레킹을 활용하여 어렵지 않게 구현할 수 있는 문제이다.
현재 문자를 기준으로 가능한 조합을 모두 구하여 정답을 반환하면 해결된다.
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
};