프로그래밍/알고리즘 풀이
[node.js] 삼총사
카카수(kakasoo)
2023. 6. 4. 16:57
반응형
function* combinations(elements, selectNumber) {
for (let i = 0; i < elements.length; i++) {
if (selectNumber === 1) {
yield [elements[i]];
} else {
const fixed = elements[i];
const rest = elements.slice(i + 1);
for (const a of combinations(rest, selectNumber - 1)) {
yield [fixed, ...a];
}
}
}
}
function solution(number) {
const answer = [];
/**
* number 중 3개의 요소를 조합한 후, 그 조합의 합이 0이 되는 케이스를 찾는다.
*/
for (const a of combinations(number, 3)) {
if (a.reduce((acc, cur) => acc + cur, 0) === 0) {
answer.push(a);
}
}
return answer.length;
}
반응형