LeetCode Medium Letter Combinations of a Phone Number Python
Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.
- dictionary
솔직히 무조건 문제 성격상 dictionary
로 풀면 좋겠다..
라는 생각이 든 문제여서 다른 방법은 딱히 생각을 안해봤다.
손으로 정리를 해보니,
product
를 import
해서 사용하기엔 불편할 것 같았고
차라리 앞부터 한 자씩 더해가면 어떨까 생각했다.
다만, 문자가 4자리수가 들어가기도 해서
해당 위치의 값을 초기화 해주는 식이 아닌
가상의 리스트를 만들어서 계속해서 초기화 해주는 방식을 택했다.
class Solution(object):
def letterCombinations(self, digits):
numDict = {"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"]}
resultList = []
for i in range(len(digits)):
outputList = [] # 메모리 공간을 위해 빈 리스트로 초기화
if resultList == []: # i가 1일 경우
resultList = numDict[digits[0]]
continue # 1일 경우 List 추가 후 continue
for k in resultList:
for p in numDict[digits[i]]:
outputList.append(k+p) # 해당 값에서 한자리씩 더해서 append
resultList = outputList
return resultList