17. Letter Combinations of a Phone Number

Polla·2023년 9월 11일
0

LeetCode

목록 보기
1/2
post-thumbnail

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.



🥳 해결!


생각

  1. dictionary

솔직히 무조건 문제 성격상 dictionary로 풀면 좋겠다..
라는 생각이 든 문제여서 다른 방법은 딱히 생각을 안해봤다.

손으로 정리를 해보니,
productimport해서 사용하기엔 불편할 것 같았고
차라리 앞부터 한 자씩 더해가면 어떨까 생각했다.

다만, 문자가 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
  


profile
트러블 슈팅 Blog => https://polla.palms.blog/home

0개의 댓글