[プログラマ-LEVEL 2]-ターゲット番号
リンク
ターゲット番号
問題の説明
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
使用可能な数値の配列番号、ターゲット番号のターゲットをパラメータとして指定したときに、適切に数値を加算して減算して、ターゲット番号を作成する方法の数を返します.
せいげんじょうけん
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
使用可能な数値の配列番号、ターゲット番号のターゲットをパラメータとして指定したときに、適切に数値を加算して減算して、ターゲット番号を作成する方法の数を返します.
せいげんじょうけん
Code class Solution {
static int answer=0;
static int targett=0;
public int solution(int[] numbers, int target) {
targett=target;
DFS(numbers, 0, 0);
return answer;
}
public void DFS(int[] num, int idx, int sum)
{
if(idx==num.length)
{
if(sum==targett)
answer++;
return;
}
sum+=num[idx];
DFS(num, idx+1, sum);
sum-=num[idx];
num[idx]*=(-1);
sum+=num[idx];
DFS(num, idx+1, sum);
}
}
Reference
この問題について([プログラマ-LEVEL 2]-ターゲット番号), 我々は、より多くの情報をここで見つけました
https://velog.io/@ehdcks3421/프로그래머스-LEVEL2-타켓-넘버
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
class Solution {
static int answer=0;
static int targett=0;
public int solution(int[] numbers, int target) {
targett=target;
DFS(numbers, 0, 0);
return answer;
}
public void DFS(int[] num, int idx, int sum)
{
if(idx==num.length)
{
if(sum==targett)
answer++;
return;
}
sum+=num[idx];
DFS(num, idx+1, sum);
sum-=num[idx];
num[idx]*=(-1);
sum+=num[idx];
DFS(num, idx+1, sum);
}
}
Reference
この問題について([プログラマ-LEVEL 2]-ターゲット番号), 我々は、より多くの情報をここで見つけました https://velog.io/@ehdcks3421/프로그래머스-LEVEL2-타켓-넘버テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol