[프로그래머스][타겟 넘버]-Lv.2

호준·2022년 11월 22일
0

Algorithm

목록 보기
109/111
post-thumbnail

🎈 문제

문제링크

🎈 제한 사항

🎈 접근방법

  1. DFS를 이용하였다.
  2. DFS를 돌면서 깊이가 주어진 numbers의 길이 일때 종료 조건을 넣는다.
  3. 종료조건이 만족할 때 sum이 target과 같으면 answer +1를 해준다.
  4. sum에 해당 숫자를 더한 값 DFS, 뺀 값 DFS를 돌린다.

🎈 코드

class Solution {
    static int answer=0;
    public int solution(int[] numbers, int target) {
        dfs(0,0,target,numbers);
        return answer;
    }
    static void dfs(int depth, int sum, int target, int[] numbers){
        if(depth == numbers.length){
            if(sum == target){
                answer++;
            }
            return;
        }
        dfs(depth+1, sum+numbers[depth], target, numbers);
        dfs(depth+1, sum-numbers[depth], target, numbers);
    }
}
profile
도전하지 않는 사람은 실패도 성공도 없다

0개의 댓글