Skip to content

Commit

Permalink
#8 22.11.11 > 합이 같은 부분집합 (DFS)
Browse files Browse the repository at this point in the history
  • Loading branch information
beurmuz committed Nov 11, 2022
1 parent 944099d commit ae6289c
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
30 changes: 30 additions & 0 deletions src/inf/recursive,dfs/5_rerere.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
"use strict";

function solution(arr) {
let answer = "NO";
let flag = 0;
let total = arr.reduce((sum, x) => sum + x, 0); // (0으로 초기화 후) 총 합을 구해준다.

function dfs(L, sum) {
if (flag) return;
if (L === arr.length) {
// 0~(5+1)까지 모두 탐색한 후
if (total - sum === sum) {
// total - sum을 한 값이 남은 sum과 같으면, 두 부분집합의 합이 같은 것
answer = "YES";
flag = 1;
}
} else {
// 왼쪽 (포함하는 경우)
dfs(L + 1, sum + arr[L]); // 현재 값을 sum에 더하면서 다음 노드(L+1)로 이동
// 오른쪽 (포함하지 않는 경우)
dfs(L + 1, sum); // 현재 값은 sum에 더하지 않고 그대로 넘기면서 다음 노드(L+1)로 이동
}
}
dfs(0, 0);

return answer;
}

let arr = [1, 3, 5, 6, 7, 10];
console.log(solution(arr));
2 changes: 1 addition & 1 deletion src/inf/recursive,dfs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
| 2 | O | 22.11.09 |
| 3 || 22.11.09 |
| 4 | X | 22.11.11😥 |
| 5 | X | 22.11.10😥 |
| 5 | X | 22.11.11😥 |
| 6 || 22.11.10😥 |
| 7 || O |
| 8 | X | O |
Expand Down

0 comments on commit ae6289c

Please sign in to comment.