본문 바로가기

코딩테스트 연습/programmers

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

DFS를 활용한 간단한 문제.

순서를 바꾸지않고 모든 +, - 경우를 탐색해야함 

 

class Solution {
    static int answer = 0;
    public int solution(int[] numbers, int target) {

        dfs(numbers, target, 0, 0);
        
        return answer;
    }
    
    static void dfs(int[] numbers, int target, int count, int sum){
        if(count == numbers.length){
            if(sum == target){
                answer++;   
            }
            return;
        }
        
        dfs(numbers, target, count+1, sum+numbers[count]);
        dfs(numbers, target, count+1, sum-numbers[count]);
        
    }
}