๐ Language & CS knowledge/Algorithm (๊ธฐ์ด๋ฌธ์ ํ์ด)
์ค๋ณต์์ด ๊ตฌํ๊ธฐ(DFS)
Daehyunii
2022. 9. 7. 21:56
๋ฌธ์ (์ถ์ฒ : ์ธํ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ๊ฐ์, ์ ๋ณด์ฌ๋ฆผํผ์๋)
1๋ถํฐ N๊น์ง ๋ฒํธ๊ฐ ์ ํ ๊ตฌ์ฌ์ด ์์ต๋๋ค. ์ด ์ค ์ค๋ณต์ ํ๋ฝํ์ฌ M๋ฒ์ ๋ฝ์ ์ผ๋ ฌ๋ก ๋์ด ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ถ๋ ฅํฉ๋๋ค.
โฃ ์
๋ ฅ์ค๋ช
์ฒซ ๋ฒ์งธ ์ค์ ์์ฐ์ N(3<=N<=10)๊ณผ M(2<=M<=N) ์ด ์ฃผ์ด์ง๋๋ค.
โฃ ์ถ๋ ฅ์ค๋ช
์ฒซ ๋ฒ์งธ ์ค์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ๋งจ ๋ง์ง๋ง ์ด ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ์ถ๋ ฅ์์๋ ์ฌ์ ์์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํฉ๋๋ค.
โฃ ์ ๋ ฅ์์ 1
32
โฃ ์ถ๋ ฅ์์ 1
11
12
13
21 22 23 31 32 33 9
Tip

๋ฌธ์ ํ์ด
//์ ๋ต
function solution(n, m){
let answer=[];
let tmp=Array.from({length:m}, ()=>0);
function DFS(L){
if(L===m){
answer.push(tmp.slice());
}
else{
for(let i=1; i<=n; i++){ // ์ธ ๊ฐ์ง๋ก ๋ป์ด ๋๊ฐ
tmp[L]=i;
DFS(L+1);
}
}
}
DFS(0);
return answer;
}
console.log(solution(3, 2));