π 03 - μ΄μ§νΈλ¦¬ μν(κΉμ΄μ°μ νμ)
μ΄μ§νΈλ¦¬ μνλ₯Ό μ°μ΅ν΄λ³΄λ λ¬Έμ μ΄λ€. μ²μ λμ¨ κ°λ
μ΄κΈ°μ λ¨Όμ κ°λ
μ 리λ₯Ό ν νμκ° μλ€.
μ΄μ§νΈλ¦¬μ λν΄μ λ¨Όμ μμ보μβ
λ무λ₯Ό λ€μ§μ΄ λμ λͺ¨μκ³Ό κ°μΌλ©° κ°κ°μ λ
Έλκ° μ΅λ λ κ°μ μμ λ
Έλλ₯Ό κ°μ§λ νΈλ¦¬ μλ£ κ΅¬μ‘°λ‘, μμ λ
Έλλ₯Ό κ°κ° μΌμͺ½ μμ λ
Έλμ μ€λ₯Έμͺ½ μμ λ
ΈλλΌκ³ νλ€. λ€μ κ·Έλ¦Όκ³Ό κ°λ€.

μ΄μ§νΈλ¦¬λ₯Ό μννλ λ°©λ²μλ μ μμν(preorder), μ€μμν(inorder), νμμν(postorder)μ 3κ°μ§κ° μλλ°, μ΄λ λΆλͺ¨ λ
Έλλ₯Ό κΈ°μ€μΌλ‘ νκ³ μλ€.

μ μμν(preorder)λ λΆλͺ¨ λ
Έλ, μΌμͺ½ μμ λ
Έλ, μ€λ₯Έμͺ½ μμ λ
Έλ μμλ‘ νμνλ€. μ μ¬μ§μ μν κ²°κ³Όλ 1 2 4 5 3 6 7μ΄λ€.
μ€μμν(inorder)λ μΌμͺ½ μμ λ
Έλ, λΆλͺ¨ λ
Έλ, μ€λ₯Έμͺ½ μμ λ
Έλ μμλ‘ νμνλ€. μ μ¬μ§μ μν κ²°κ³Όλ 4 2 5 1 6 3 7μ΄λ€.
νμμν(postorder)λ μΌμͺ½ μμ λ
Έλ, μ€λ₯Έμͺ½ μμ λ
Έλ, λΆλͺ¨ λ
Έλ μμλ‘ νμνλ€. μ μ¬μ§μ μν κ²°κ³Όλ 4 5 2 6 7 3 1μ΄λ€.
π μ°Έκ³ ) μ΄μ§νΈλ¦¬λ₯Ό λ°°μ΄λ‘ ꡬννμ§ μκ³ DFSλ‘ κ΅¬ννλ μ΄μ λ λ
Έλμ μμΉλ₯Ό μ½κ² μ κ·Ό(indexing)ν μ μμΌλ μ¬μ©νμ§ μλ 곡κ°μ΄ μ‘΄μ¬ν κ²½μ° κΈ°μ΅ κ³΅κ°μ λλΉκ° μ¬νλ€λ λ¨μ μ΄ μκΈ° λλ¬Έμ΄λ€.
π νμ΄ λ°©λ²
λ€μ μ½λλ₯Ό 보면 answer += v + ' ' μμ μμΉμ λ°λΌ μννλ λ°©λ²μ΄ λ¬λΌμ§λ κ²μ νμΈν μ μλ€. κ·Έλλ‘ μΈμ°λ κ²λ λ°©λ²μΌ μ μκ² μ§λ§ μ€ν νλ μμ μ§μ μ¨λ³΄λ©΄μ κ³Όμ μ μ΄ν΄λ³΄λ©΄ μ΄ν΄νλλ° λ§μ λμμ΄ λλ€.
- μΌμͺ½ μμ λ Έλλ λΆλͺ¨ λ Έλμ * 2μ ν΄λΉνκ³ , μ€λ₯Έμͺ½ μμ λ Έλλ λΆλͺ¨ λ Έλμ * 2 + 1μ ν΄λΉνλ€.
function solution(n) {
let answer = '';
function DFS(v) {
if (v > 7) return;
else {
// μ μμν
answer += v + ' ';
DFS(v * 2);
// μ€μμν
// answer += v + ' ';
DFS(v * 2 + 1);
// νμμν
// answer += v + ' ';
}
}
DFS(n);
return answer;
}
console.log(solution(1));
π» μ°Έκ³ ν μ¬μ΄νΈ
https://ywtechit.tistory.com/m/309
[ μλ°μ€ν¬λ¦½νΈ(JavaScript) ] section08 - 3 - μ΄μ§νΈλ¦¬ μν(κΉμ΄μ°μ νμ)
π section08 - 3 - μ΄μ§νΈλ¦¬ μν(κΉμ΄μ°μ νμ) μ΄μ§νΈλ¦¬ μνκ° λ¬΄μμΈμ§ λͺ¨λ₯΄λ μ¬λμ μ΄λ €μΈ μ μλ λ¬Έμ λ€. μ¬κΈ°μ μ΄μ§νΈλ¦¬λ λ무λ₯Ό λ€μ§μ΄ λμ λͺ¨μμΌλ‘ ν κ°μ λΆλͺ¨ λ Έλμ 2κ°μ μ
ywtechit.tistory.com
'Algorithm > μΈνλ°(inflearn)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript/section 8] 05 - ν©μ΄ κ°μ λΆλΆμ§ν© (0) | 2022.10.21 |
---|---|
[JavaScript/section 8] 04 - λΆλΆμ§ν© ꡬνκΈ° (0) | 2022.10.20 |
[JavaScript/section 8] 02 - μ΄μ§μ μΆλ ₯(μ¬κ·) (0) | 2022.10.14 |
[JavaScript/section 8] 01 - μ¬κ·ν¨μ (0) | 2022.10.14 |
[JavaScript/section 7] 12 - λ§κ΅¬κ° μ νκΈ° (0) | 2022.10.12 |
π 03 - μ΄μ§νΈλ¦¬ μν(κΉμ΄μ°μ νμ)
μ΄μ§νΈλ¦¬ μνλ₯Ό μ°μ΅ν΄λ³΄λ λ¬Έμ μ΄λ€. μ²μ λμ¨ κ°λ
μ΄κΈ°μ λ¨Όμ κ°λ
μ 리λ₯Ό ν νμκ° μλ€.
μ΄μ§νΈλ¦¬μ λν΄μ λ¨Όμ μμ보μβ
λ무λ₯Ό λ€μ§μ΄ λμ λͺ¨μκ³Ό κ°μΌλ©° κ°κ°μ λ
Έλκ° μ΅λ λ κ°μ μμ λ
Έλλ₯Ό κ°μ§λ νΈλ¦¬ μλ£ κ΅¬μ‘°λ‘, μμ λ
Έλλ₯Ό κ°κ° μΌμͺ½ μμ λ
Έλμ μ€λ₯Έμͺ½ μμ λ
ΈλλΌκ³ νλ€. λ€μ κ·Έλ¦Όκ³Ό κ°λ€.

μ΄μ§νΈλ¦¬λ₯Ό μννλ λ°©λ²μλ μ μμν(preorder), μ€μμν(inorder), νμμν(postorder)μ 3κ°μ§κ° μλλ°, μ΄λ λΆλͺ¨ λ
Έλλ₯Ό κΈ°μ€μΌλ‘ νκ³ μλ€.

μ μμν(preorder)λ λΆλͺ¨ λ
Έλ, μΌμͺ½ μμ λ
Έλ, μ€λ₯Έμͺ½ μμ λ
Έλ μμλ‘ νμνλ€. μ μ¬μ§μ μν κ²°κ³Όλ 1 2 4 5 3 6 7μ΄λ€.
μ€μμν(inorder)λ μΌμͺ½ μμ λ
Έλ, λΆλͺ¨ λ
Έλ, μ€λ₯Έμͺ½ μμ λ
Έλ μμλ‘ νμνλ€. μ μ¬μ§μ μν κ²°κ³Όλ 4 2 5 1 6 3 7μ΄λ€.
νμμν(postorder)λ μΌμͺ½ μμ λ
Έλ, μ€λ₯Έμͺ½ μμ λ
Έλ, λΆλͺ¨ λ
Έλ μμλ‘ νμνλ€. μ μ¬μ§μ μν κ²°κ³Όλ 4 5 2 6 7 3 1μ΄λ€.
π μ°Έκ³ ) μ΄μ§νΈλ¦¬λ₯Ό λ°°μ΄λ‘ ꡬννμ§ μκ³ DFSλ‘ κ΅¬ννλ μ΄μ λ λ
Έλμ μμΉλ₯Ό μ½κ² μ κ·Ό(indexing)ν μ μμΌλ μ¬μ©νμ§ μλ 곡κ°μ΄ μ‘΄μ¬ν κ²½μ° κΈ°μ΅ κ³΅κ°μ λλΉκ° μ¬νλ€λ λ¨μ μ΄ μκΈ° λλ¬Έμ΄λ€.
π νμ΄ λ°©λ²
λ€μ μ½λλ₯Ό 보면 answer += v + ' ' μμ μμΉμ λ°λΌ μννλ λ°©λ²μ΄ λ¬λΌμ§λ κ²μ νμΈν μ μλ€. κ·Έλλ‘ μΈμ°λ κ²λ λ°©λ²μΌ μ μκ² μ§λ§ μ€ν νλ μμ μ§μ μ¨λ³΄λ©΄μ κ³Όμ μ μ΄ν΄λ³΄λ©΄ μ΄ν΄νλλ° λ§μ λμμ΄ λλ€.
- μΌμͺ½ μμ λ Έλλ λΆλͺ¨ λ Έλμ * 2μ ν΄λΉνκ³ , μ€λ₯Έμͺ½ μμ λ Έλλ λΆλͺ¨ λ Έλμ * 2 + 1μ ν΄λΉνλ€.
function solution(n) {
let answer = '';
function DFS(v) {
if (v > 7) return;
else {
// μ μμν
answer += v + ' ';
DFS(v * 2);
// μ€μμν
// answer += v + ' ';
DFS(v * 2 + 1);
// νμμν
// answer += v + ' ';
}
}
DFS(n);
return answer;
}
console.log(solution(1));
π» μ°Έκ³ ν μ¬μ΄νΈ
https://ywtechit.tistory.com/m/309
[ μλ°μ€ν¬λ¦½νΈ(JavaScript) ] section08 - 3 - μ΄μ§νΈλ¦¬ μν(κΉμ΄μ°μ νμ)
π section08 - 3 - μ΄μ§νΈλ¦¬ μν(κΉμ΄μ°μ νμ) μ΄μ§νΈλ¦¬ μνκ° λ¬΄μμΈμ§ λͺ¨λ₯΄λ μ¬λμ μ΄λ €μΈ μ μλ λ¬Έμ λ€. μ¬κΈ°μ μ΄μ§νΈλ¦¬λ λ무λ₯Ό λ€μ§μ΄ λμ λͺ¨μμΌλ‘ ν κ°μ λΆλͺ¨ λ Έλμ 2κ°μ μ
ywtechit.tistory.com
'Algorithm > μΈνλ°(inflearn)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript/section 8] 05 - ν©μ΄ κ°μ λΆλΆμ§ν© (0) | 2022.10.21 |
---|---|
[JavaScript/section 8] 04 - λΆλΆμ§ν© ꡬνκΈ° (0) | 2022.10.20 |
[JavaScript/section 8] 02 - μ΄μ§μ μΆλ ₯(μ¬κ·) (0) | 2022.10.14 |
[JavaScript/section 8] 01 - μ¬κ·ν¨μ (0) | 2022.10.14 |
[JavaScript/section 7] 12 - λ§κ΅¬κ° μ νκΈ° (0) | 2022.10.12 |