작성
·
133
0
function solution(arr) {
let answer = 'NO', flag = 0;
let chk = Array.from({ length: arr.length }, () => 0);
function DFS(i) {
let sum1 = sum2 = 0;
if (flag) return;
if (i === arr.length) {
for (let i = 0; i < arr.length; i++) {
if (chk[i] === 1) {
sum1 += arr[i];
} else {
sum2 += arr[i];
}
}
if (sum1 === sum2) {
answer = 'YES';
flag = 1;
}
} else {
chk[i] = 1;//포함
DFS(i + 1);//미포함
chk[i] = 0;
DFS(i + 1);
}
}
DFS(0);
return answer;
}
let input = [3, 1, 5, 6, 7, 10];
console.log(solution(input));
이런식으로 짜봤는데 반복이 한번들어 감으로써 혹시 시간복잡도상 문제가 있을까요...?