본문 바로가기

프로그래머스 - JAVA

코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버

이전 코드

class Solution {
    public int solution(int[] numbers, int target) {
        int answer = 0;
        answer = dfs (numbers, 0, 0, target);
        return answer;
    }
    
    public int dfs(int [] number, int node, int sum, int target){
        if (number.length == node){
            if(target == sum){
                return 1;
            } else {
                return 0;
            }
        }
        
        return dfs(number, node + 1, sum + number[node], target) +  dfs(number, node + 1, sum - number[node], target);
    }
}

최근 코드

import java.util.*;

class Solution {
    public int solution(int[] numbers, int target) {
        int answer = dfs(numbers, 0, 0, target);
        return answer;
    }
    
    public int dfs (int[] numbers, int node, int sum, int target){
        if (numbers.length == node){
            if (sum == target){
                return 1;
            } else {
                return 0;
            }
        }
        return dfs(numbers, node + 1, sum + numbers[node], target) + dfs(numbers, node + 1, sum - numbers[node], target);
    }
}