일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 디자인 패턴
- 컴퓨터 네트워크
- vanillaJS
- 프로그래머스 자바
- 백준
- react
- 데이터모델링과마이닝
- 프로그래밍 언어론
- codesandbox
- JavaScript
- websocket
- 자바 공부
- 리액트 훅
- react hook
- 코틀린
- Java
- 자바
- 프로그래머스
- React JS
- 자바스크립트
- 코딩테스트 고득점 Kit
- 프로그래머스 완전탐색
- useEffect
- NextJS
- react firebase
- design pattern
- 장고
- 코딩테스트 고득점 Kit 완전탐색
- 리액트
- useState
Archives
- Today
- Total
기록하는 개발자
[프로그래머스][JAVA] 타겟 넘버 본문
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
'Algorithm' 카테고리의 다른 글
[프로그래머스][JAVA] 124 나라의 숫자 (0) | 2021.06.13 |
---|---|
[프로그래머스][JAVA] K번 째 수 (0) | 2021.06.13 |
[프로그래머스][JAVA] 완주하지 못한 선수 (0) | 2021.06.11 |
[프로그래머스][JAVA] 폰켓몬 (0) | 2021.06.11 |
[프로그래머스][JAVA] 모의고사 (0) | 2021.06.11 |