중복순열 구하기

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

알고리즘 - Node.js

목록 보기
93/116
post-thumbnail

중복순열 구하기


문제

1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 중복을 허락하여 M번을 뽑아 일렬로 나열 하는 방법을 모두 출력합니다.

입력

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

출력

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

입력 예시 1

3 2

출력 예시 1

1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3


해결방법

function solution(n, m) {
  let answer = [];
  let temp = Array.from({ length: m }, () => 0);

  function DFS(Level) {
    if (Level === m) {
      answer.push(temp.slice());
    } else {
      for (let i = 1; i <= n; i++) {
        temp[Level] = i;
        DFS(Level + 1);
      }
    }
  }
  DFS(0);
  return answer;
}
console.log(solution(3, 2));

profile
좋은 개발자가 되고싶은

0개의 댓글