배고픈 개발자 이야기

[Python] Letter Combination of a Phone Number 본문

알고리즘 문제/LEETCODE

[Python] Letter Combination of a Phone Number

이융희 2021. 5. 6. 02:45
728x90

Medium 난이도 Acceptence 50.1% 문제

 

문재는 핸드폰 번호판에 매핑된 문자를 사용하여 만들 수 있는 모든 문자 조합을 구하는 문제로

먼저, 각 번호를 key 매핑문자를 value로 저장 후, 입력으로 들어온 숫자의 길이에 맞게 순서대로 조합을 생성하여 반환한다.

 

class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        mapNum = {'2':'abc','3':'def','4':'ghi','5':'jkl','6':'mno','7':'pqrs','8':'tuv','9':'wxyz'}
        l = len(digits)
        result = []

        if l == 0:
            return result
        if l == 1:
            for a in mapNum.get(digits[0]):
                result.append(a)
        if l == 2:
            for a in mapNum.get(digits[0]):
                for b in mapNum.get(digits[1]):
                    result.append(a+b)
        if l == 3:
            for a in mapNum.get(digits[0]):
                for b in mapNum.get(digits[1]):
                    for c in mapNum.get(digits[2]):
                        result.append(a+b+c)
        if l == 4:
            for a in mapNum.get(digits[0]):
                for b in mapNum.get(digits[1]):
                    for c in mapNum.get(digits[2]):
                        for d in mapNum.get(digits[3]):
                            result.append(a+b+c+d)
        return result

'알고리즘 문제 > LEETCODE' 카테고리의 다른 글

[Python] GroupAnagrams  (0) 2021.06.30
[Python] Remove Nth Node from End of List  (0) 2021.05.06
[Python] Binary Tree Inorder Traversal  (0) 2021.05.06
[Python] Add Two Numbers  (0) 2021.05.06
[Python] 3Sum  (0) 2021.05.06
Comments