[리트코드] 39. Combination Sum
39. Combination Sum
나의 풀이
/**
* @param {number[]} candidates
* @param {number} target
* @return {number[][]}
*/
var combinationSum = function (candidates, target) {
candidates.sort((a, b) => a - b); // 오름차순
let answer = [];
dfs([], 0, 0);
/**
*
* @param {number[]} path 현재 조합
* @param {number} sum 현재 합계
* @param {number} index
*/
function dfs(path, sum, index) {
if(sum === target){
answer.push(path);
return;
}
for (let i = index; i < candidates.length; i++) {
const el = candidates[i];
if(sum + el <= target){
dfs([...path, el], sum + el, i);
}
}
}
return answer;
};
이해했는데 어렵다. 다음에 다시 살펴보기