- 타겟 넘버https://school.programmers.co.kr/learn/courses/30/lessons/43165
function solution(numbers, target) {
let count = 0;
function dfs(result, depth) {
if (depth === numbers.length) {
if (result === target) count += 1;
} else {
dfs(result - numbers[depth], depth + 1);
dfs(result + numbers[depth], depth + 1);
}
}
// result, depth
dfs(0, 0);
return count;
}
-갓지현님의 그림 설명-
function solution(numbers, target) {
let count = 0;
function dfs(result, depth) { // 0 0
if (depth === numbers.length) { //끝까지 내려간 것
if (result === target) count += 1; //끝의 값이 target 과 같으면 카운트
} else {
dfs(result - numbers[depth], depth + 1);//dfs(0-첫번째값,2)
dfs(result + numbers[depth], depth + 1);//dfs(0+첫번째값,2)
}
}
// result, depth
dfs(0, 0);
return count;
}