위의 그림처럼 각 자리에 들어갈 수 있는 경우의 수는 3이므로 총 경우의 수는 3 x 3 = 9이다.
1. L = m일때 재귀함수에서 탈출 하는 구조이다.
2. 각각의 층(L)에서 DFS는 반복문을 통해 모든 수를 순환해야 한다.
3. L = m의 값들은 결국 m자리로 만들수 있는 모든 값이다.
function solution(n, m){
let answer= 0;
let tmp=Array.from({length:m}, ()=>0);
function DFS(L){
if(L===m){
console.log(tmp);
answer += 1;
}
else{
for(let i=1; i<=n; i++){
tmp[L]=i;
DFS(L+1);
}
}
}
DFS(0);
return answer;
}
else 구문
else에서 L이 m(2)에 도달하면 L은 그 전 층인 1로 돌아가 tmp[L]에 i의 값을 넣어준다.