Skip to content

Commit 3577383

Browse files
committed
Add proof solution
1 parent be4828b commit 3577383

File tree

1 file changed

+28
-0
lines changed
  • exercises/practice/killer-sudoku-helper/.meta

1 file changed

+28
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
export const combinations = (cage) => {
2+
const { sum, size, exclude } = cage;
3+
const result = [];
4+
const digits = [...Array(10).keys()]
5+
.slice(1)
6+
.filter((d) => !exclude.includes(d));
7+
8+
function findCombinations(remainingSum, index, combination) {
9+
if (remainingSum === 0 && combination.length === size) {
10+
result.push(combination);
11+
return;
12+
}
13+
14+
for (let i = index; i < digits.length; i++) {
15+
const digit = digits[i];
16+
if (digit > remainingSum) {
17+
break;
18+
}
19+
if (combination.includes(digit)) {
20+
continue;
21+
}
22+
findCombinations(remainingSum - digit, i + 1, [...combination, digit]);
23+
}
24+
}
25+
26+
findCombinations(sum, 0, []);
27+
return result;
28+
};

0 commit comments

Comments
 (0)