알고리즘

[프로그래머스-dfs] 타겟넘버

제이G 2022. 7. 2. 12:36

class Solution {
    static int answer=0;
    public int solution(int[] numbers, int target) {
        int sum = 0;
        dfs(numbers, target, sum, 0);
        return answer;
    }
    
    static void dfs(int[] numbers, int target, int sum, int depth) {
        //base case    
        if (depth == numbers.length) {
            if (sum == target) {
                answer ++;
            }
        } else {
            //rercursive case
            dfs(numbers, target, sum + numbers[depth], depth+1);   
            dfs(numbers, target, sum - numbers[depth], depth+1);
        }
    }
}