class Solution {
private int count = 0;
private void calc(int[] numbers, int start, int target) {
if (start == numbers.length) {
if (target == 0) count++;
return;
}
target -= numbers[start];
calc(numbers, start + 1, target);
target += numbers[start];
target += numbers[start];
calc(numbers, start + 1, target);
}
public int solution(int[] numbers, int target) {
int answer = 0;
calc(numbers, 0, target);
return count;
}
}
막상 해결하고 나니 간단한 문제여서 놀랐습니다. 재귀 함수로 접근하는 방법은 처음부터 생각하였으나, 문제를 너무 어렵게 생각하여 너무 둘러온 것 같습니다. 들인 시간에 비해 결과가 조금 허무(?)하지만, 재귀를 다시 한번 정리할 수 있었습니다.