본문 바로가기

Algorithm

[Algorithm/Java][프로그래머스] 타겟 넘버

반응형

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

https://programmers.co.kr/learn/courses/30/lessons/43165

문제 접근

dfs를 이용해서 numbers[0] 부터 numbers[numbers.length-1]까지 모든 숫제에대해서 +,-한 경우를 탐색해서 target이 되는 경우의 수를 구했다.

Code

class Solution {
    int answer;
    int[] nums;
    public int solution(int[] numbers, int target) {
        answer = 0;
        nums = numbers;
        dfs(0, 0, target);
        return answer;
    }

    public void dfs(int num, int cnt, int target){
        if(cnt == nums.length){
            if(num == target){
              answer++;  
            }
            return;
        }
        else {
            dfs(num + nums[cnt], cnt+1, target);
            dfs(num - nums[cnt], cnt+1, target);
        }
    }
}

어려웠던 점 / 배운 점 / 느낀 점

뭔가 dfs/bfs를 풀면 visited를 사용해야만 할 것 같은 기분이라서 무의식적으로 선언했는데, 이 친구는 사용할 필요가 없었다!

반응형