[プログラマー][DFS][JS]ターゲット番号
質問する
n個の非負の整数がある.順序を変更せずにこれらの整数を適切に追加または減算してターゲット番号を作成したいと思います.たとえば、[1,1,1,1,1,1]で数値3を作成するには、次の5つの方法があります.
-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3
使用可能な数値の配列番号、ターゲット番号のターゲットをパラメータとして指定したときに、適切に数値を加算して減算して、ターゲット番号を作成する方法の数を返します.せいげんじょうけん
与えられた数字の個数は2個または20個以上である.
各数字は1または50以下の自然数です.
ターゲット番号が1または1000以下の自然数です.
に答える
function solution(numbers, target) {
let answer = 0;
DFS(0,0)
function DFS(level, sum) {
if(level === numbers.length) {
if(sum === target) {
answer += 1;
}
return;
}
DFS(level + 1, sum + numbers[level])
DFS(level + 1, sum - numbers[level])
}
return answer;
}
solution([1, 1, 1, 1, 1], 3)
Reference
Reference
この問題について([プログラマー][DFS][JS]ターゲット番号), 我々は、より多くの情報をここで見つけました https://velog.io/@gygy/프로그래머스DFSJS-타겟넘버テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol