자료구조와 알고리즘/🥑알고리즘

[알고리즘][그래프] - 2. 전화 번호 문자 조합

얄루몬 2022. 3. 23. 21:24

 

📖이 포스팅은 '파이썬 알고리즘 인터뷰 - 박상길님' 책을 보고 작성되었습니다.


😎문제 : https://leetcode.com/problems/letter-combinations-of-a-phone-number/

2에서 9까지 숫자가 주어졌을 때 전화 번호로 조합 가능한 모든 문자를 출력하라.


class Solution:
    def letterCombinations(self, digits: str) -> List[str]:
        def dfs(index, path):
            if len(path) == len(digits):
                result.append(path)
                return

            for i in range(index, len(digits)):
                #해당 키를 가진(숫자의) 문자열을 모두 돈다.
                for j in dic[digits[i]]:
                    dfs(i+1,path+j)

        if not digits:
            return []

        dic = {"2":"abc", "3":"def", "4": "ghi","5":"jkl","6":"mno","7":"pqrs","8":"tuv","9":"wxyz"}
        result = []
        dfs(0,"")
        return result