반응형
문제
https://leetcode.com/problems/letter-combinations-of-a-phone-number/
문제 풀기 전
- 이렇게 출력하는 문제를 보면 재귀로 다 돌려야한다. 보통이런걸 조건에 따라 돌리기때문에 backtracking이라고 한다.
직접 푼 풀이
소요시간: 22분(13:12 ~ 13:34)
class Solution {
private String[][] phoneText = new String [][]{{" "},
{},
{"a","b","c"},
{"d","e","f"},
{"g","h","i"},
{"j","k","l"},
{"m","n","o"},
{"p","q","r","s"},
{"t","u","v"},
{"w","x","y","z"}
};
private List<String> output = new ArrayList<>();
public List<String> letterCombinations(String digits) {
if (digits.equals("")) {
return output;
}
int[] array = new int[digits.length()];
for (int i=0; i<digits.length(); i++) {
array[i]=(int)(digits.charAt(i)-'0');
}
make(array, 0, "");
return output;
}
private void make(int[] array, int index, String word) {
if (array.length == index) {
output.add(word);
return;
}
int phoneNumber = array[index];
String[] texts = phoneText[phoneNumber];
for (int i=0; i<texts.length; i++) {
make(array, index+1, word + texts[i]);
}
}
}
느낀점
- 크게 어려운점은 없었다.
누적되는 알고리즘 접근 설명서
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(236. Lowest Common Ancestor of a Binary Tree) (0) | 2021.02.04 |
---|---|
.leetcode(279. Perfect Squares) (0) | 2021.02.02 |
.leetcode(75. Sort Colors) (0) | 2021.01.30 |
.leetcode(105. Construct Binary Tree from Preorder and Inorder Traversal) (0) | 2021.01.30 |
.leetcode(621. Task Scheduler) (0) | 2021.01.27 |