이 문제의 핵심은 크게 아래와 같이 볼 수 있다.
- 모든 경우의 수 구하기 (완전탐색)
- 재귀함수를 구현할때 어떤 인자를 넘길지 생각하기
✅ 문제 풀이
public class Main {
public static int answer = 0;
public static void recursion(int[]numbers, int target, int index, int sum) {
if(index == numbers.length) {
if(sum == target) {
answer++;
return;
}
} else {
recursion(numbers, target, index + 1, sum + numbers[index]);
recursion(numbers, target, index + 1, sum - numbers[index]);
}
}
public static void main(String[] args) {
int[] numbers = {1, 1, 1, 1, 1};
int target = 3;
recursion(numbers, target, 0, 0);
System.out.println(answer);
}
}