[Programmers]-타겟 넘버

문제

문제

문제 요약

주어진 숫자를 이용해 타겟넘버를 만드는 방법 수를 반환하면된다.

코드

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

코드 설명

dfs를 2번 쓰는 이유는 한쪽은 +, 다른쪽은 -를 해주기위함이다.

요약

  • 재귀함수를 이용하자.