항해99 2주차 - 전화번호문자조합
Today I learned
2022/01/20
회고록
1/20
항해 99, 알고리즘 1주차
교재 : 파이썬 알고리즘 인터뷰
12장 그래프
1. 이론
2. 문제
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.
A mapping of digit to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
Example 1:
Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
Example 2:
Input: digits = ""
Output: []
Example 3:
Input: digits = "2"
Output: ["a","b","c"]
Constraints:
0 <= digits.length <= 4
digits[i] is a digit in the range ['2', '9'].
https://leetcode.com/problems/letter-combinations-of-a-phone-number/
3. MySol
- Recursive DFS
def solution(inputNum):
dic = {
"2":"abc",
"3":"def",
"4":"ghi",
"5":"jkl",
"6":"mno",
"7":"pqr",
"8":"stv",
"9":"wxyz"
}
result = []
def recursive_num(index, alpha):
if len(alpha) == len(inputNum):
result.append(alpha)
return
for i in range(index, len(inputNum)):
for j in dic[inputNum[i]]:
recursive_num(i+1, alpha + j)
recursive_num(0,"")
return result
if __name__ == '__main__':
inputNum = '23'
result = solution(inputNum)
print('result : ' + str(result))
4. 배운 점
- 해당 문제는 재귀함수로 모든 경우의 수를 조합하는 방법으로, 이해하기 어려웠다.
- 하지만, 이해하게 되면 재귀함수를 적용하는데 도움이 된다.
5. 총평
재귀, DFS 훈련
Author And Source
이 문제에 관하여(항해99 2주차 - 전화번호문자조합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsw4215/항해99-2주차-전화번호문자조합저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)