배고픈 개발자 이야기
[Python] Letter Combination of a Phone Number 본문
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