Training/Problem Solving

[JS] 배열 요소들의 모든 조합(Combinations) 구하기

FATKITTY 2022. 5. 4. 17:41
반응형
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