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