잡다한 배똥월드

728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

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

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

programmers.co.kr

 

 

 

class Solution {
    
    int answer = 0;
    
    public int solution(int[] numbers, int target) {
        func(numbers, target, 0, 0);
        return answer;
    }
    
    public void func(int[] numbers, int target, int p, int num) {
        if (p == numbers.length) {
            if (target == num) answer++;
            return;
        }
        
        func(numbers, target, p+1, num + numbers[p]);
        func(numbers, target, p+1, num - numbers[p]);
        
    }
}

 

테스트 1 통과 (4.36ms, 86.8MB)
테스트 2 통과 (4.42ms, 74.9MB)
테스트 3 통과 (0.22ms, 79.7MB)
테스트 4 통과 (0.58ms, 84.9MB)
테스트 5 통과 (0.59ms, 64.6MB)
테스트 6 통과 (0.37ms, 78.1MB)
테스트 7 통과 (0.18ms, 77MB)
테스트 8 통과 (0.27ms, 76.7MB)

 

 

 

 

 

각 자리의 숫자들의 부호를 구분하는 것이기 때문에 앞에서부터 +냐 -냐 구분하면서 함수 호출

 

 

 

 

 

728x90

+ Recent posts