Algorithm
[프로그래머스][JAVA] 타겟 넘버
밍맹030
2021. 6. 11. 22:24
728x90
class Solution {
static int answer;
/* index : 몇 번째 인덱스인지, sum : index까지 총 더한 값 */
public void dfs(int[] numbers,int target,int index,int sum){
/* numbers 배열을 끝까지 탐색한 경우 */
if(index == numbers.length){
if(sum == target) // 총합이 target과 같다면
answer++; // 정답 개수 1 증가
return;
}
/*배열 탐색
-1) 다음 인덱스(index+1)에서 양수인 numbers[index]를 그대로 더하기
-2) 다음 인덱스(index+1)에서 음수인 numbers[index]를 더하기 */
else {
dfs(numbers,target,index+1,sum+numbers[index]);
dfs(numbers,target,index+1,sum+(-1 * numbers[index]));
}
}
public int solution(int[] numbers, int target) {
answer = 0;
dfs(numbers,target,0,0);
return answer;
}
}
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/43165
728x90