DFS 자료구조 사용 -> 간단한 숫자의 형태이기 때문에 BFS보다 DFS가 효율적이라고 생각
- DFS 함수 생성( len(몇번 더했는지), sum(이때까지의 합) )
- 만약 len가 입력값 숫자 배열의 길이와 같은지 체크
같다면, sum가 target이 같은지 확인 -> 같다면 answer++;
다르다면, 재귀함수 두개 호출
1) DFS( len+1, sum+numbers[len])
2) DFS( len+1, sum-numbers[len])
- DFS(0,0)시작
function solution(numbers, target) {
var answer = 0;
var length = numbers.length;
function DFS(len,sum){
if(len===length){
if(sum === target){
answer++;
}
}
else{
return DFS(len+1,sum+numbers[len]),DFS(len+1,sum-numbers[len]);
}
}
DFS(0,0);
return answer;
}