하루에 한 문제

[프로그래머스-lv2]타겟 넘버 -Java 본문

알고리즘/프로그래머스 lv2 다시풀기

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

dkwjdi 2021. 3. 23. 22:31

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

 

코딩테스트 연습 - 타겟 넘버

n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+

programmers.co.kr

class Solution {
    int result;
    public int solution(int[] numbers, int target) {
        int answer = 0;
        result=0;
        
        dfs(numbers, 0, numbers.length, target,0);
        return result;
    }
    
    private void dfs(int []numbers, int cnt, int end, int target, int number){
      
        if(cnt==end) {
            if(number==target) result++;
            return;
        }
        
        dfs(numbers, cnt+1, end, target, number+numbers[cnt]);
        dfs(numbers, cnt+1, end, target, number-numbers[cnt]);
    }
}

소요시간 : 8분

 

IDE 안 쓰고 프로그래머스에서 바로 푸는 연습하고 있습니다!!

 

그냥 DFS문제라서 설명드릴 건 없습니다..

 

끝~

 

 

Comments