👍 2022년 1월 23일
<script>
const getCombinations = (arr, n) => {
const results = [];
if (n === 1) return arr.map((v) => [v]);
arr.forEach((fix, i, origin) => {
const rest = origin.slice(i + 1);
const combinations = getCombinations(rest, n-1);
const attached = combinations.map((v) => [fix, ...v])
results.push(...attached);
});
return results;
}
const decimal = (num) => {
for (let i=3; i<parseInt(num/2); i++) {
if (num % i === 0) return false
}
return true;
}
function solution(nums) {
let answer = 0;
const arrays = getCombinations(nums, 3);
arrays.forEach((arr,i) => {
let sumNumber = arr.reduce((acc, val) => {return acc+val}, 0);
if (sumNumber % 2 !== 0) {
decimal(sumNumber) ? answer++ : {}
};
})
return answer;
}
</script>
매 번 선뜻 못 했던 조합구하는 법을 이번에야 확실히 안 것 같다.
복습 자주 해서 완전히 체화시켜야 하겠지만...