[programmers] Lv2. ターゲットJavascript|DFS(深度優先ナビゲーション)|protect-me
10684 ワード
🕊 Link
Lv2. ターゲットJavascript番号
https://programmers.co.kr/learn/courses/30/lessons/43165
🧑🏻💻 Code(javascript) function solution(numbers, target) {
let answer = 0;
let count = 0;
function calc(x, value) {
if (x < numbers.length) {
calc(x + 1, value + numbers[x]);
calc(x + 1, value - numbers[x]);
} else {
if (value === target) {
answer++;
}
}
}
calc(0, 0);
return answer;
}
💡 Solution
深度優先ナビゲーション(DFS)による解析function solution(numbers, target) {
let answer = 0;
function calc(x, value) {
if (x < numbers.length) {
calc(x + 1, value + numbers[x]);
calc(x + 1, value - numbers[x]);
// number[x]를 더하는 경우와 빼는 경우를
// 재귀적으로 호출하여 계속해서 가지를 뻗어 나감
} else {
if (value === target) {
answer++;
}
// x의 값이 numbers.length과 같아지면
// value 값과 target이 같은지 판단해서 count up
}
}
calc(0, 0);
return answer;
}
🔁 復習する
2021.09.01
function solution(nums, target) {
let answer = 0;
const LENGTH = nums.length
const dfs = (value, depth) => {
if (depth === LENGTH) {
if (value === target) answer++
} else {
const num = nums[depth]
dfs(value + num, depth + 1)
dfs(value - num, depth + 1)
}
}
dfs(0, 0)
return answer
}
const nums = [1, 1, 1, 1, 1]
const target = 3
console.log(solution(nums, target))
👨🏻💻💭 Self Feedback
function solution(numbers, target) {
let answer = 0;
let count = 0;
function calc(x, value) {
if (x < numbers.length) {
calc(x + 1, value + numbers[x]);
calc(x + 1, value - numbers[x]);
} else {
if (value === target) {
answer++;
}
}
}
calc(0, 0);
return answer;
}
💡 Solution
深度優先ナビゲーション(DFS)による解析function solution(numbers, target) {
let answer = 0;
function calc(x, value) {
if (x < numbers.length) {
calc(x + 1, value + numbers[x]);
calc(x + 1, value - numbers[x]);
// number[x]를 더하는 경우와 빼는 경우를
// 재귀적으로 호출하여 계속해서 가지를 뻗어 나감
} else {
if (value === target) {
answer++;
}
// x의 값이 numbers.length과 같아지면
// value 값과 target이 같은지 판단해서 count up
}
}
calc(0, 0);
return answer;
}
🔁 復習する
2021.09.01
function solution(nums, target) {
let answer = 0;
const LENGTH = nums.length
const dfs = (value, depth) => {
if (depth === LENGTH) {
if (value === target) answer++
} else {
const num = nums[depth]
dfs(value + num, depth + 1)
dfs(value - num, depth + 1)
}
}
dfs(0, 0)
return answer
}
const nums = [1, 1, 1, 1, 1]
const target = 3
console.log(solution(nums, target))
👨🏻💻💭 Self Feedback
function solution(numbers, target) {
let answer = 0;
function calc(x, value) {
if (x < numbers.length) {
calc(x + 1, value + numbers[x]);
calc(x + 1, value - numbers[x]);
// number[x]를 더하는 경우와 빼는 경우를
// 재귀적으로 호출하여 계속해서 가지를 뻗어 나감
} else {
if (value === target) {
answer++;
}
// x의 값이 numbers.length과 같아지면
// value 값과 target이 같은지 판단해서 count up
}
}
calc(0, 0);
return answer;
}
function solution(nums, target) {
let answer = 0;
const LENGTH = nums.length
const dfs = (value, depth) => {
if (depth === LENGTH) {
if (value === target) answer++
} else {
const num = nums[depth]
dfs(value + num, depth + 1)
dfs(value - num, depth + 1)
}
}
dfs(0, 0)
return answer
}
const nums = [1, 1, 1, 1, 1]
const target = 3
console.log(solution(nums, target))
最後の
count
がいくらなのか混同しないでください.関数は
numbers.length
に呼び出されたが、四半期中にelse
が焼失したため、x
は5
に減少した.댓글 환영
질문 환영
by.protect-me
Reference
この問題について([programmers] Lv2. ターゲットJavascript|DFS(深度優先ナビゲーション)|protect-me), 我々は、より多くの情報をここで見つけました https://velog.io/@protect-me/programmers-Lv2.-타겟-넘버-Javascriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol