문제
1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 중복을 허락하여 M번을 뽑아 일렬로 나열하는 방법을 모두 출력합니다.
입력
첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다.
3 2
출력
첫 번째 줄에 결과를 출력합니다. 맨 마지막 총 경우의 수를 출력합니다. 출력순서는 사전순으로 오름차순으로 출력합니다.
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
9
풀이
function solution(n, m){
let tmp = new Array(m).fill(0);
let result = '';
let cnt = 0;
function DFS(L) {
if(L===m){
result += `${tmp}\n`;
cnt++;
return;
}
else{
for(let i = 1; i <=n; i++){
tmp[L]=i;
DFS(L+1);
}
}
}
DFS(0);
result += `${cnt}`;
return result;
}
console.log(solution(3, 2));
'Algorithm & 자료구조 > (인프런) 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글
[알고리즘] 모든 아나그램 찾기(해쉬, 투포인터, 슬라이딩 윈도우) (0) | 2022.04.20 |
---|---|
[알고리즘] 순열구하기 (0) | 2022.03.19 |
[알고리즘] 최대점수 구하기(DFS) (0) | 2022.03.16 |
[알고리즘] 합이 같은 부분집합(DFS) (0) | 2022.03.09 |
[알고리즘] 아나그램 (해쉬) (0) | 2022.02.22 |