https://programmers.co.kr/learn/courses/30/lessons/43165
function solution(numbers, target) {
let cnt = 0;
function dfs(level, sum) {
if (level === numbers.length) {
if (sum === target) {
cnt++;
}
return;
}
dfs(level + 1, sum + numbers[level]);
dfs(level + 1, sum - numbers[level]);
}
dfs(0, 0);
return cnt;
}
✔ 알고리즘 : DFS
✔ 레벨을 증가시켜주면서 numbers[level]을 더하는 경우, 빼는 경우로 dfs 두번 탐색
❗ numbers 배열에 있는 모든 수를 활용하여 target 을 맞춰야함
ex) [1 1 1 1 1 ] , target : 3일때
1 + 1 + 1 은 count 하지 않음
✔ 난이도 : 프로그래머스 기준 LEVEL 2