<--- 리트코드 17. Letter Combinations of a Phone Number --->
# 문제: 2에서 9까지 숫자가 주어졌을 때 전화 번호로 조합 가능한 모든 문자를 출력하라.
입력
"23" |
출력
["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"] |
# 풀이
1. 모든 조합 탐색
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
def letter_combinations(digits):
def dfs(index, path):
if len(path) == len(digits):
result.append(path)
return
for i in range(index, len(digits)):
for j in dic[digits[i]]:
dfs(i + 1, path + j)
if not digits:
return
dic = {"2": "abc", "3": "def", "4": "ghi", "5": "jkl", "6": "mno", "7": "pqrs", "8": "tuv", "9": "wxyz"}
result = []
dfs(0, "")
return result
digits = "23"
print(letter_combinations(digits))
|
cs |
'Python' 카테고리의 다른 글
파이썬 알고리즘 인터뷰 - 35. 조합 (0) | 2022.01.30 |
---|---|
파이썬 알고리즘 인터뷰 - 34. 순열 (0) | 2022.01.30 |
파이썬 알고리즘 인터뷰 - 32. 섬의 개수 (0) | 2022.01.29 |
파이썬 알고리즘 인터뷰 - 31. 상위 K 빈도 요소 (0) | 2022.01.27 |
파이썬 알고리즘 인터뷰 - 30. 중복 문자 없는 가장 긴 부분 문자열 (0) | 2022.01.27 |