알고리즘/프로그래머스
[프로그래머스][자바스크립트][Level2] 타겟 넘버
Benjamin_Choi
2021. 7. 20. 20:31
https://programmers.co.kr/learn/courses/30/lessons/43165
function solution(numbers, target) {
var answer = {number: 0};
f(numbers, 0, 0, answer, target, "+");
f(numbers, 0, 0, answer, target, "-");
return answer.number;
}
function f(numbers, idx, result, answer, target, calc) {
if (calc === "+") {
result += numbers[idx];
} else if (calc === "-") {
result -= numbers[idx];
}
if (numbers.length - 1 === idx) {
if (result === target) {
answer.number++;
}
return;
}
f(numbers, idx+1, result, answer, target, "+");
f(numbers, idx+1, result, answer, target, "-");
return;
}
재귀로 풀었다. 좀 넘기는 인자가 많긴했으나 로직은 잘 나왔다.
DFS로도 한 번 더 풀어봐도 좋을 것 같다.