class Solution {
public int solution(int[] numbers, int target) {
int answer = 0;
answer = dfs(0, numbers, target);
return answer;
}
public int dfs(int d, int[] numbers, int target) {
if (d == numbers.length) {
if (target == 0) return 1;
else return 0;
}
return dfs(d + 1, numbers, target + numbers[d]) + dfs(d + 1, numbers, target - numbers[d]);
}
}
DFS 알고리즘을 이용하면 쉽게 풀 수 있는 문제였다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges