250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(Leet Code JS)Letter Combinations of a Phone Number 본문
728x90
반응형
https://leetcode.com/problems/letter-combinations-of-a-phone-number/
각 번호에 맵핑된 문자의 모든 조합을 찾아내는 문제.
완전 탐색으로 풀이.
dfs에 넘겨주는 인자는 (현재 문자열, 현재 digits의 인덱스, 현재 문자의 길이)다.
dfs 함수.
우선 digits[index]를 number형으로 바꿔서 digit 이라는 변수에 저장한다.
그리고 종료 조건인지 확인하여 answer에 push.
종료조건은 현재 문자열의 길이인 size가 length - 1과 같은지 확인한다.
같다면 for문을 통해 현재 digit에 해당하는 문자와 현재 문자열을 조합하여 answer에 push.
종료조건이 아니라면 계속 탐색을 진행한다.
0 ~ strings[digit].length 만큼 for문을 진행한다.
현재 문자열인 current에 strings[digit][i]를 조합한 후,
dfs에 다음 문자를 조합하면 된다.
넘겨주는 변수들은 (조합한 새로운 문자열, index + 1, size + 1)이다.
var letterCombinations = function(digits) {
const answer = [];
const strings = ["", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"];
const length = digits.length;
if(!digits.length){
return [];
}
const dfs = (current, index, size) => {
const digit = parseInt(digits[index]);
if(size === length - 1){
for(let i = 0; i < strings[digit].length; i++){
answer.push(current + strings[digit][i]);
}
return;
}
for(let i = 0; i < strings[digit].length; i++){
const string = current + strings[digit][i];
dfs(string, index + 1, size + 1);
}
}
dfs("", 0, 0);
return answer;
};
728x90
반응형
'Leet Code 알고리즘' 카테고리의 다른 글
(Leet Code JS)Path With Maximum Probability (0) | 2022.03.28 |
---|---|
(Leet Code JS)Cheapest Flights Within K stops (0) | 2022.03.28 |
(Leet Code JS)Spiral Matrix (0) | 2022.03.21 |
(Leet Code JS)Multiply Strings (0) | 2022.03.21 |
(Leet Code JS)House Robber II (0) | 2022.03.16 |