난이도 : Level. 2
언어 : Javascript
출제 내역 : 깊이/너비 우선 탐색(DFS/BFS)
숫자의 합이 타겟 넘버가 되는 경우의 수를 구하자
function solution(numbers, target) {
let answer = 0;
dfs(0, 0);
function dfs(index, sum) {
if(index === numbers.length) {
if (sum === target) {
answer++;
}
return;
}
dfs(index + 1, sum + numbers[index]);
dfs(index + 1, sum - numbers[index]);
}
return answer;
}
개인적으로 공부를 해야 할 알고리즘 방식 중 하나라고 생각한다.
탐색 방식도 그렇지만, 재귀함수를 사용하는 방법 역시 고민해봐야겠다.