ν°μ€ν 리 λ·°
λ¬Έμ
https://choi95.tistory.com/124
λ¬Έμ νμ΄
μ΄μ κ²½λ‘ νμμ ꡬνλ κ³Όμ μμ μΈμ νλ ¬μ μ¬μ©νμ¬ μ μ μΌλ‘ κ°λ κ°μ§ μλ₯Ό ꡬνμλ€.
νμ§λ§ κ° μ μ μ λν΄μ λ€μ μ μ μΌλ‘ κ° μ μλ ν보ꡰμ ν(νμ¬ μ μ )κ³Ό μ΄(λ€μ μ μ )μ μ μ₯νλ€λ©΄ νμ κ³Όμ μμλΆνμν μΈλ±μ€ μμκΉμ§ μΌμΌν νμΈνλ©΄μ μνν΄μΌ λλ λ¬Έμ κ° λ°μνλ€.
νμ¬λ μ΄(λ€μ μ μ )μ μκ° μ μ΄ ν¬κ² μκ΄μ μμΌλ νλ³΄κ΅°μ΄ λ¬΄μν λ§μ§λ§ κ·Έ μ€ μ€μ κ° μ μλ κ²½λ‘μ μκ° κ·Ήμμμ΄λ€λ©΄λͺ¨λ κ²½λ‘λ₯Ό κ° μ μλμ§ μννλ κ²μ μκ°λ³΅μ‘λ μ λ§€μ° λΉν¨μ¨μ μ΄λ€.
μΈμ 리μ€νΈ
- nκ°μ μ μ μ κ°κ°μ λν΄ μΈμ ν μ μ λ€μ 리μ€νΈλ‘ λ§λλ κ²
- μ°κ²° κ°λ₯ν λͺ¨λ κ²½μ°μ μλ₯Ό μ μ₯ν΄μ 보μ¬μ£Όλ μΈμ νλ ¬κ³Όλ λ€λ₯΄κ² μ°κ²°λμ΄ μλ κ²½μ°μλ§ μ μ₯_λ©λͺ¨λ¦¬λ₯Ό λ μ¬μ©
μ½λ
function solution(n, arr) {
let answer = 0;
let graph = Array.from(Array(n + 1), () => Array()); //κ° μ μ μ΄ μ°κ²°λμ΄ μλ μ μ μ μμ΄νκΈ° λλ¬Έμ 2μ°¨μ λ°°μ΄μ λΉ κ³΅λ°±μΌλ‘
let ch = Array.from({length: n + 1}, () => 0);
for(let [a, b] of arr) {
graph[a].push(b); //μ°κ²°λμ΄ μλ μ μ μ μ 보λ₯Ό μ§μ μ μ₯
}
function DFS(v) {
if(v === n) answer++;
else {
for(let i = 0; i < graph[v].length; i++) { //μ°κ²°λμ΄ μλ μ μ μ κ°―μλ§νΌλ§ μν
if(ch[graph[v][i]] === 0) {
ch[graph[v][i]] = 1;
DFS(graph[v][i]);
ch[graph[v][i]] = 0;
}
}
}
}
ch[1] = 1;
DFS(1);
return answer;
}
let arr = [[1, 2], [1, 3], [1, 4], [2, 1], [2, 3], [2, 5], [3, 4], [4, 2], [4, 5]];
console.log(solution(5, arr));
'μκ³ λ¦¬μ¦ > νκ·Έ λ³ νμ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BFS]μ΄μ§νΈλ¦¬ λμ΄ μ°μ νμ (0) | 2021.08.13 |
---|---|
[DFS]λ―Έλ‘ νμ (0) | 2021.08.11 |
[μΈμ νλ ¬]κ²½λ‘ νμ (0) | 2021.08.09 |
μμ΄ μΆμΈ‘νκΈ° (0) | 2021.08.08 |
νΉμ κ°μ λ§μ‘±νλ μ‘°ν© κ΅¬νκΈ°(ps.νμ΄μ¬μ μμ..) (0) | 2021.08.08 |
λκΈ