-
728x90
- dfs를 응용하여 각 숫자를 더했다가 빼보면 된다.
그러면 numbers의 숫자를 빼고 더하는 모든 경우의 수에 대해 탐색 가능!class Solution { static int answer = 0; public int solution(int[] numbers, int target) { makeTargetNum(numbers, target, 0, 0); return answer; } static void makeTargetNum(int[] numbers, int target, int cnt, int sum) { if(cnt == numbers.length) { if(sum == target) answer++; return; } makeTargetNum(numbers, target, cnt + 1, sum - numbers[cnt]); makeTargetNum(numbers, target, cnt + 1, sum + numbers[cnt]); } }
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[level3] 프로그래머스 - 단어 변환(JAVA) (0) 2021.09.14 [level3] 프로그래머스 - 네트워크(JAVA) (0) 2021.09.14 [level2] 프로그래머스 - 124 나라의 숫자 (2) 2021.09.12 [level2] 프로그래머스 - 순위 검색(JAVA) (0) 2021.09.12 [level2] 프로그래머스 - 멀쩡한 사각형(JAV) (0) 2021.09.11 댓글