[アルゴリズム]Programmersターゲット番号
872 ワード
[問題リンク]
https://programmers.co.kr/learn/courses/30/lessons/43165?language=javascript#
https://programmers.co.kr/learn/courses/30/lessons/43165?language=javascript#
function solution(numbers, target) {
var answer = 0;
//numbers 배열의 모든 총 합이 target과 같은 경우 다른 방법은 없으므로 1로 리턴
if (numbers.reduce((pre, cur) => pre + cur) === target) return 1;
//재귀 작성
const dfs = (cnt, sum) => {
//전체 배열의 길이보다 작은 경우에만
if (cnt < numbers.length) {
//더했을 경우와 뺏을 경우 모두 비교해야하므로
dfs(cnt + 1, sum + numbers[cnt])
dfs(cnt + 1, sum - numbers[cnt])
} else {
//모든 numbers를 다 순회 한 이후 sum과 target이 같으면 ++
if (sum === target) ++answer;
}
}
dfs(0, 0)
return answer;
}
Reference
この問題について([アルゴリズム]Programmersターゲット番号), 我々は、より多くの情報をここで見つけました https://velog.io/@go_by/Algorithm-Programmers타겟넘버テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol