제한사항
- 주어지는 숫자의 개수는 2개 이상 20개 이하입니다.
- 각 숫자는 1 이상 50 이하인 자연수입니다.
- 타겟 넘버는 1 이상 1000 이하인 자연수입니다.
제한사항을 보면 숫자의 개수가 작기 때문에 재귀 호출 방식으로 진행하면 된다.
class Solution {
public int solution(int[] numbers, int target) {
return recursive(0,numbers,0,target);
}
private static int recursive(int idx,int [] numbers, int val, int target){
if(idx == numbers.length){
if(val == target)
return 1;
return 0;
}
int ret =0 ;
//뺄샘
ret = recursive(idx+1,numbers,val-numbers[idx],target);
ret += recursive(idx+1,numbers,val+numbers[idx],target);
return ret;
}
}