10이하의 N개의 자연수가 주어지면 이 중 M개를 뽑아 일렬로 나열하는 방법을 모두 출력하라.(중복X)
function solution(m, arr){
let answer=[];
let n=arr.length;
let ch=Array.from({length:m},()=>0);
function DFS(L){
if(L===m){
answer.push(ch.slice());
}
else{
for(let i=0; i<=m; i++){
ch[L]=arr[i];
DFS(L+1);
}
}
}
DFS(0);
return answer;
}
let arr=[3, 6, 9];
console.log(solution(2, arr));
function solution(m, arr){
let answer=[];
n=arr.length;
let ch=Array.from({length:n},()=>0);
let tmp=Array.from({length:m},()=>0);
function DFS(L){
if(L===m){
answer.push(tmp.slice());
}
else{
for(let i=0; i<n; i++){
if(ch[i]===0){
ch[i]=1;
tmp[L]=arr[i];
DFS(L+1);
ch[i]=0;
}
}
}
}
DFS(0);
return answer;
}
let arr=[3, 6, 9];
console.log(solution(2, arr));