[JavaScript/section 8] 10 - μμ΄ κ΅¬νκΈ°
π 10 - μμ΄ κ΅¬νκΈ°
10μ΄νμ Nκ°μ μμ°μκ° μ£Όμ΄μ§λ©΄ μ΄ μ€ Mκ°λ₯Ό λ½μ μΌλ ¬λ‘ λμ΄νλ λ°©λ²μ λͺ¨λ μΆλ ₯νλ λ¬Έμ μ΄λ€.
μ€λ³΅μμ΄ κ΅¬νκΈ° λ¬Έμ μ λ€λ₯Έ μ μ μ€λ³΅μμ΄ μμμ μκ΄μκ² μ ννλ€λ μ μ΄λ€. λ§μ½ 3κ°μ μμ°μκ° μ£Όμ΄μ§κ³ μ΄ μ€ 2κ°λ₯Ό λ½μ μΌλ ¬λ‘ λμ΄νλ λ°©λ²μ λ€μ κ·Έλ¦Όκ³Ό κ°μ΄ μ΄ 6κ°μ§μ΄λ€.
π νμ΄ λ°©λ²
ch λ°°μ΄μ tmp λ°°μ΄μ μ΄λ€ μκ° μ νλμλμ§ νμΈνκΈ° μν λ°°μ΄μ΄λ€. (μ€λ³΅ κ²μ¦)
- ch[i]μ κ°μ΄ 0μ΄λ©΄ μ νλμ§ μμλ€λ κ²μ΄λ―λ‘ μ νν΄λ λλ€λ μλ―Έμ΄λ€. λ°λλ‘ ch[i]μ κ°μ΄ 1μ΄λ©΄ μ΄λ―Έ μ νλμλ€λ κ²μ΄λ―λ‘ κ±΄λλ΄λ€.
- L(νΈλ¦¬μ λ 벨)μ΄ mκ³Ό κ°λ€λ©΄ νλμ κ²½μ°κ° μμ±λ κ²μ΄λ―λ‘ tmp λ°°μ΄μ μμ 볡μ¬νμ¬ answer λ°°μ΄μ μΆκ°νλ€.
- DFS ν¨μμ νΈμΆμ΄ λλ λ€μμ ch[i](μ΄μ μ μ νν μ«μ)λ₯Ό 0μΌλ‘ μ¬ν λΉ ν΄μΌνλ€.
κ·Έλ¦ΌμΌλ‘ κ·Έλ €λ³΄λ κ²μ΄ μ΄ν΄νλλ° λμμ΄ λ κ²μ΄λΌκ³ μκ°νλ€.
function solution(m, arr) {
const answer = [];
const n = arr.length;
const ch = Array.from({ length: n }, () => 0);
const 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);
for (let [a, b] of answer) {
console.log(a, b);
}
return answer.length;
}
let arr = [3, 6, 9];
console.log(solution(2, arr));
π ν λ§λ λ¨κΈ°λ©°..
μ΄ν΄νλλ° μ΄λ €μΈ μ μλ λ¬Έμ λΌκ³ μκ°ν©λλ€. μ½λλ₯Ό λ°λΌκ°λ©° κ·Έλ¦ΌμΌλ‘ κ·Έλ €λ³΄λ κ²μ΄ μ΄ν΄νλλ° λμμ΄ λ μ μμ§λ§ κ·Έλλ μ΄λ ΅λ€λ μκ°μ΄ λ λ€λ©΄ λκΈλ‘ λ¨κ²¨μ£ΌμΈμ~ μ’μ ν루 λμκΈ° λ°λλλ€π