반응형
function getCombinations(arr, N) {
const results = [];
if (N === 1) return arr.map((value) => [value]);
arr.forEach((fixed, index, origin) => {
const rest = origin.slice(index + 1);
// 해당하는 fixed를 제외한 나머지 뒤
const combinations = getCombinations(rest, N - 1);
// 나머지에 대해서 조합을 구한다.
const attached = combinations.map((combination) => [fixed, ...combination]);
// 돌아온 조합에 떼 놓은(fixed) 값 붙이기
results.push(...attached);
});
return results;
}
참고자료
https://pul8219.github.io/algorithm/algorithm-permutation-and-combination/
반응형
'Training > Problem Solving' 카테고리의 다른 글
[JS] 소수 판별하기 (0) | 2022.05.04 |
---|---|
[JS] 콘솔로 입력 받기 (0) | 2022.04.06 |
[C++] 문자열 공백 기준으로 자르기 (string split) (0) | 2022.01.01 |