ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
10์ดํ์ N๊ฐ์ ์์ฐ์๊ฐ ์ฃผ์ด์ง๋ฉด ์ด ์ค M๊ฐ๋ฅผ ๋ฝ์ ์ผ๋ ฌ๋ก ๋์ดํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ถ๋ ฅํฉ๋๋ค.
๋ฌธ์ ํ์ด
์ค๋ณต์ ํ๋ฝํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ์ฒดํฌ ๋ฐฐ์ด์ ๋ง๋ค์ด ์ด์ ์ ์ฐธ์กฐํ๋ value์ผ ๊ฒฝ์ฐ์๋ ์ฐ์ฐ์ ์ํํ์ง ์๋๋ก ํ๋ค.
์ฝ๋
function solution(m, arr) {
let answer = [];
let n = arr.length;
let tmp = Array.from({length: m}, () => 0);
let ch = Array.from({length: n}, () => 0);
function DFS(L) {
if(L === m) {
answer.push(tmp.slice());
}
else {
for(let i = 0; i < n; i++) {
if(ch[i] === 0) { //์ด์ ์ ์ฐธ์กฐํ๋ value์ผ ๊ฒฝ์ฐ์๋ง ํด๋น ์ฐ์ฐ ์คํ
tmp[L] = arr[i];
ch[i] = 1; //์ฒดํฌ
DFS(L + 1);
ch[i] = 0; //ํ๋์ ๊ฐ์ ์์์ ํ์์ด ๋๋ฌ๋ค๋ฉด ํด๋น value์ ์ฒดํฌ๋ฅผ ํ์ด์ค
}
}
}
}
DFS(0);
return answer;
}
console.log(solution(2, [3, 6, 9]));
'์๊ณ ๋ฆฌ์ฆ > ํ๊ทธ ๋ณ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํน์ ๊ฐ์ ๋ง์กฑํ๋ ์กฐํฉ ๊ตฌํ๊ธฐ(ps.ํ์ด์ฌ์ ์์..) (0) | 2021.08.08 |
---|---|
[๋ฉ๋ชจ์ด์ ์ด์ ]์กฐํฉ์ ๊ฒฝ์ฐ์ (0) | 2021.08.07 |
[DFS-Cut Edge]๋์ ๊ตํ (0) | 2021.08.06 |
[๋ค์ค for๋ฌธ๊ณผ ์ฌ๊ท์ ์ฐจ์ด]์ค๋ณต์์ด ๊ตฌํ๊ธฐ (0) | 2021.08.06 |
[DFS]์ต๋ ์ ์ ๊ตฌํ๊ธฐ (0) | 2021.08.04 |
๋๊ธ