[JS/Problem Solving] Get Target Number
Task
https://programmers.co.kr/learn/courses/30/lessons/43165
Count how many combinations of adding and subtracting each element of the given array results the given target number.
Solution
function solution(numbers, target) {
let answer = 0;
let nums = [...numbers];
const tar = target;
// Recursive function
const getTarget = (arr, num, count) => {
// Get sum at every loop
let sum = arr.reduce((a, c) => a + c, 0);
// If sum matches target, increase answer
if(sum === num) {
answer++;
}
// For every item in array, change to negative value, recursion
for (let i = count; i < arr.length; i++) {
let temp = arr.slice();
temp[i] *= -1;
getTarget(temp, num, i+1);
}
}
getTarget(nums, tar, 0);
return answer;
}