본문 바로가기
프로그래밍

leetcode 17. Letter Combinations of a Phone Number 풀이

by 웃즐 2021. 4. 14.

문제 : 전화기 2-9 사이 번호에 쓰여진 문자열들의 조합을 반환하라

Follow up :

 

아이디어 : 각 번호에 해당하는 문자열의 dictionary를 만든 후 문자를 순회하며 반환해야할 리스트에 값을 추가한다.

 

코드 :

 

class Solution:
    def letterCombinations(self, digits: str) -> List[str]:
        ans = []
        if not digits:
            return ans
        d = {2: ['a', 'b', 'c'], 3: ['d', 'e', 'f'], 4: ['g', 'h', 'i'],
            5: ['j', 'k', 'l'], 6: ['m', 'n', 'o'], 7: ['p', 'q', 'r', 's'],
            8: ['t', 'u', 'v'], 9: ['w', 'x', 'y', 'z']}
        for digit in digits:
            n = int(digit)
            if not ans:
                ans = d[n]
            else:
                t = []
                for a in ans:
                    for dig in d[n]:
                        t.append(a + dig)
                ans = t
        return ans

 

학습 포인트 : 한번만에 클리어해서 매우 기분이 좋았다. 침착하게 문제를 분석하고 풀면 좋은 결과가 있을 것이다.

 

출처 : leetcode.com/problems/letter-combinations-of-a-phone-number/