조합 구하기 - Node.js

프동프동·2022년 8월 8일
0

알고리즘 - Node.js

목록 보기
98/116
post-thumbnail

조합 구하기


문제

1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 M개를 뽑는 방법의 수를 출력하는 프로그램을 작성하세요.

입력

첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다.

출력

첫 번째 줄에 결과를 출력합니다. 맨 마지막 총 경우의 수를 출력합니다. 출력순서는 사전순으로 오름차순으로 출력합니다.

입력 예시 1

4 2

출력 예시 1

1 2
1 3
1 4
2 3
2 4
3 4


해결방법

function solution(N, M) {
  let answer = [];
  let temp = Array.from({ length: M }, () => 0);
  function DFS(L, s) {
    if (L === M) {
      answer.push(temp.slice());
    } else {
      for (let i = s; i <= N; i++) {
        temp[L] = i;
        DFS(L + 1, i + 1);
      }
    }
  }
  DFS(0, 1);
  return answer;
}

console.log(solution(4, 2));

profile
좋은 개발자가 되고싶은

0개의 댓글