첫번째 풀이
function solution(numbers, target) {
let count = 0;
function recur(sum, list) {
if (!list.length) {
if (sum == target) {
count++;
}
return;
}
const next = list[0];
recur(sum - next, list.slice(1));
recur(sum + next, list.slice(1));
}
recur(0, numbers.slice());
return count;
}
두번째 풀이
function solution(numbers, target) {
let count = 0;
const length = numbers.length;
function recur(sum, idx) {
if (idx == length) {
if (sum == target) {
count++;
}
return;
}
recur(sum - numbers[idx], idx + 1);
recur(sum + numbers[idx], idx + 1);
}
recur(0, 0);
return count;
}