알고리즘 [조합] 편

hams·2023년 5월 8일
0

algorithm

목록 보기
43/62

알고리즘 [조합]편

조합이란?

조합(Combinations)은 서로 다른 n개의 원소 중에서 r개를 선택하는 것 방법이다.
조합에서는 선택된 원소의 순서가 중요하지 않다.
즉, 선택된 원소들의 순서를 바꾸어도 같은 조합으로 간주한다

[1,2,3]에서 2개를 뽑아서 조합을 구성한다면
[1,2],[1,3],[2,3]이 나온다.

즉, [1,2]와 [2,1]은 같은 것으로 판단한다.

n개의 원소 중에서 r개를 선택하는 경우의 수라고 생각하면 된다.

조합 구하는 코드

function combinations(arr, k) {
  const results = [];
  function dfs(elements, start, k) {
    if (k === 0) {
      results.push(elements.slice());
      return;
    }
    for (let i = start; i < arr.length; i++) {
      elements.push(arr[i]);
      dfs(elements, i + 1, k - 1);
      elements.pop();
    }
  }
  dfs([], 0, k);
  return results;
}

위 코드는 arr 배열에서 k개를 선택한 모든 조합을 구하는 함수입니다. dfs 함수는 깊이 우선 탐색(dfs) 알고리즘을 이용해 모든 가능한 조합을 탐색합니다. start 인덱스를 이용해 중복된 조합을 제거합니다.

0개의 댓글

관련 채용 정보