https://programmers.co.kr/learn/courses/30/lessons/43165?language=javascript
let answer=0;
function dfs(d, target, numbers, sum){
if(d===numbers.length){
if(sum===target)
answer++;
return;
}
dfs(d+1,target,numbers,sum+numbers[d]);
dfs(d+1,target,numbers,sum-numbers[d]);
}
function solution(numbers, target) {
dfs(0,target,numbers,0);
return answer;
}
answer = 0
def dfs(sum, d, numbers, target):
global answer
if d == len(numbers) and sum == target:
answer += 1
return
dfs(sum+numbers[d], d+1, numbers, target)
dfs(sum-numbers[d], d+1, numbers, target)
def solution(numbers, target):
dfs(0, 0, numbers, target)
return answer
dfs로 간단하게 풀 수 있는데 재귀함수를 사용하여 모든 경우의 수를 쉽게 탐색해봤습니다.