[Programmers]-타겟 넘버
문제
문제 요약
주어진 숫자를 이용해 타겟넘버를 만드는 방법 수를 반환하면된다.
코드
class Solution {
int answer = 0;
public int solution(int[] numbers, int target) {
dfs(numbers, numbers[0], 1, target);
dfs(numbers, -numbers[0], 1, target);
return answer;
}
public void dfs(int[] numbers, int temp, int depth, int target){
if(numbers.length == depth){//
if(temp == target) answer++;
return;
}
dfs(numbers, temp+numbers[depth], depth+1, target);
dfs(numbers, temp-numbers[depth], depth+1, target);
}
}
코드 설명
dfs를 2번 쓰는 이유는 한쪽은 +, 다른쪽은 -를 해주기위함이다.
요약
- 재귀함수를 이용하자.