본문 바로가기
Backend/알고리즘

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

by 박상윤 2024. 5. 18.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

dfs로 완전 탐색해서 풀어주었다.

class Solution {
    
    public static int tmpSum = 0;
    public static int answer = 0;
    
    public int solution(int[] numbers, int target) { // 더하거나 빼거나
        
        dfs(numbers, target, 0, 0);
        
        return answer;
    }
    
    public void dfs(int[] numbers, int target, int sum, int here) { // 빼거나 더하거나
        
        if(here == numbers.length) {
           if(sum == target) {
              answer++;
              return;
           }
            
           return;
        }
        
      
        dfs(numbers, target, sum + numbers[here], here + 1);
        dfs(numbers, target, sum - numbers[here], here + 1);
    }
}