#1 κ·Έλν
#1-1 κ·Έλν

κ·Έλνλ νμμ΄λ μ¬λ¬Όμ μ μ (Vertex)μ κ°μ (Edge)λ‘ νννλ κ²μ΄λ€. μ μ μ μ΄λ€ κ°μ²΄λ₯Ό λνλ΄κ³ , κ°μ μ κ·Έ κ°μ²΄λ€ κ°μ κ΄κ³λ₯Ό λνλΈλ€. μ κ·Έλ¦Όμ κ° μ μ (λμ)μ ν곡νΈ(κ°μ )μ΄ μλ λͺ¨μ΅μ ννν μμ΄λ€. nκ°μ μ μ μ§ν© Vμ μ΄λ€ κ°μ μ‘΄μ¬νλ κ°μ μ μ§ν© Eλ‘ κ΅¬μ±λ κ·Έλν Gλ₯Ό G = (V, E)λ‘ κΈ°μ νλ€.
#1-2 κ°μ€μΉκ° μλ κ·Έλν vs κ°μ€μΉκ° μλ κ·Έλν

κ°μ μλ κ°μ€μΉλ₯Ό μ€ μ μλ€. ν곡νΈμΌλ‘ λΉμ νμλ©΄, μ΄νλΉκ° κ°μ€μΉκ° λλ€. κ°μ€μΉκ° μλ κ·Έλνλ₯Ό κ°μ€μΉκ° μλ κ·Έλνμ²λΌ μκ°ν μλ μλ€. λͺ¨λ κ°μ€μΉλ₯Ό 1λ‘ λ³΄λ©΄ λλ€.
#1-3 무ν₯ κ·Έλν vs μ ν₯ κ·Έλν

ν곡νΈμ λ°λμ μλ°©ν₯μ μ΄μ§λ μλ€. μλ₯Ό λ€μ΄ λ°λμμ ν리λ₯Ό κ° μ μμ§λ§, ν리μμ λ°λμ κ°μ§ λͺ»νλ€λ©΄ μ ν₯ κ·Έλνλ‘ κ·Έ μν©μ ννν μ μλ€. μμΈκ³Ό λμΏμ²λΌ, μλ‘ μ€κ° μ μλ€λ©΄ νμ΄νλ₯Ό 2κ° μ¬μ©νλ€.
#1-4 κ°μ€μΉκ° μλ μ ν₯ κ·Έλν

μ ν₯ κ·Έλνμ κ°μ€μΉκΉμ§ λΆμ¬νλ©΄ μμ κ°μ λͺ¨μ΅μ΄ λλ€.
#2 κ·Έλνμ νν - μΈμ νλ ¬ (Adjacency Matrix)

νλ ¬μ μ΄μ©ν΄ κ·Έλνλ₯Ό ννν μ μλ€. μ΄λ€ κ·Έλν G = (V, E)μ μ μ μ΄ nκ°λΌλ©΄, ν¬κΈ°κ° n Γ nμΈ 2μ°¨μ νλ ¬ Aλ₯Ό μ€λΉνλ€. μ΄λ€ λ μ μ μμ μλ‘λ₯Ό μλ κ°μ μ΄ μλ€λ©΄ λ μ μ μ΄ μλ‘ μΈμ (Adjacency)νλ€κ³ νννλ€. 2μ°¨μ νλ ¬μ νκ³Ό μ΄ κ°κ°μ μΈλ±μ€μ λμΌν μμλ‘ μ μ μ λμ΄νλ€. κ·Έλ¦¬κ³ νλ ¬μ λͺ¨λ A[x][y] (μ λν΄ xμμ yλ‘ κ°λ κ°μ€μΉ κ°μ ν λΉνλ€.
λ§μ½, κ°μ€μΉκ° μλ κ·ΈλνλΌλ©΄ Aμ λͺ¨λ μμλ 0 λλ 1μΌ κ²μ΄λ€. λ λ§μ½, 무ν₯ κ·ΈλνλΌλ©΄, νλ ¬μ μ§μ bλ₯Ό κΈ°μ€μΌλ‘ λμΉμ μ΄λ£¬λ€.
μ΄ λ°©λ²μ μ§κ΄μ μ΄λ©°, κ°μ μ μ‘΄μ¬ μ¬λΆλ₯Ό A[x][y]λ₯Ό μ°Έμ‘°ν¨μΌλ‘μ¨ μ¦κ° μ μ μλ€. νμ§λ§, νλ ¬ μ μ₯μ μν n Γ n ν¬κΈ°μ κ³΅κ° κ·Έλ¦¬κ³ , νλ ¬μ κ°μ λ£κΈ° μν n Γ n ν¬κΈ°μ μκ°μ΄ νμνλ€. λ°λΌμ, κ°μ μ μκ° λ§μ§ μμ κ²½μ° κ³΅κ°κ³Ό μκ°μ΄ λλΉλλ€.
#3 μΈμ λ°°μ΄ (Adjacency Array)
#3-1 κ°μ€μΉκ° μλ 무ν₯ κ·Έλνμ κ²½μ°

λ°°μ΄λ‘λ κ·Έλνλ₯Ό ννν μ μλ€. λ¨Όμ , μ μ μ κ°―μλ§νΌ λ°°μ΄μ μ μΈνλ€. κ° λ°°μ΄μ 0λ² μμμλ ν΄λΉ μ μ κ³Ό μ°κ²°λ κ°μ (β μ μ )μ κ°―μλ₯Ό ν λΉνλ€ (#3-3μ TMIμμ μΆκ° μ€λͺ
).
κ° λ°°μ΄μμ 0μ΄ μλ μΈλ±μ€μλ κ° λ°°μ΄μ΄ λλ³νλ μ μ μ μ°κ²°λ μ μ μ λ²νΈλ₯Ό μ§μ΄λ£λλ€. μλ₯Ό λ€μ΄, μμΈμ λλ³νλ 3λ² λ°°μ΄ μ μΈλ±μ€ 1 ~ 3μΈ μμμλ μμΈκ³Ό μ°κ²°λ λμμΈ λμΏ, νμ΄λ² μ΄, λ² μ΄μ§μ λ²νΈ 4, 6, 1μ ν λΉνλ€. μ΄ λ, κ° μ μ μ λ²νΈλ μ€λ¦μ°¨μ λλ λ΄λ¦Όμ°¨ μμΌλ‘ μ λ ¬ν΄ μ°¨λ‘λλ‘ ν λΉνλ€. μ λ ¬λ λ°°μ΄μλ μ΄μ§νμμ μνν μ μκΈ° λλ¬Έμ μ΄λ€ κ°μ μ μ°Έμ‘°νκΈ° μν΄ λ°°μ΄μ μννλ κ³Όμ μ λ 빨리 μ§νν μ μλ€.
κ°μ μ λ μ μ μ μλλ°, μ κ·Έλ¦Όμμ κ°μ μ κ°―μλ 9κ°μ΄λ―λ‘ λ°°μ΄ μ μ μ μ κ°―μ μ¦, λ°°μ΄ μ μ£Όν©μ κΈμ¨μ κ°―μλ 9 Γ 2 = 18λ€. μΈμ λ°°μ΄λ‘ κ·Έλνλ₯Ό νννλ©΄, κ°μ μ κ°―μμ λΉλ‘νλ 곡κ°κ³Ό μκ°μ μ μ νκΈ° λλ¬Έμ, μ μ μ λΉν΄ κ°μ μ΄ μ μ λ μλ°νκ² μ¬μ©ν μ μλ€. νμ§λ§, μ μ λλΉ κ°μ μ΄ λΉ‘λΉ‘νκ² λ§μ νΈμ΄λΌλ©΄ μΈμ νλ ¬μ μ¬μ©νλ λ°©λ² λλΉ μ€νλ € μ€λ²ν€λκ° λ§μ΄ λ°μνλ€.
#3-2 κ°μ€μΉκ° μλ 무ν₯ κ·Έλνμ κ²½μ° (κ°μν λ²μ )

μμ κ°μ΄ κ°μν ν μλ μλ€. #3-1μ 0λ² μΈλ±μ€λ₯Ό μλ΅νμ§λ§, λ°°μ΄μ κΈΈμ΄λ₯Ό μ°Έμ‘°νλ©΄ μλ΅νλ μΈλ±μ€κ° λ΄μ μ 보μ κ°μ μ 보λ₯Ό μ»μ΄λΌ μ μκΈ° λλ¬Έμ΄λ€.
#3-3 κ°μ€μΉκ° μλ μ ν₯ κ·Έλνμ κ²½μ°

κ°μ€μΉκ° μλ μ ν₯ κ·ΈλνλΌλ©΄ λ€μκ³Ό κ°μ΄ ννν μ μλ€. μ μΌ λ¨Όμ , λ€λ₯Έ μ μ μΌλ‘ κ° μ μλ κ°μ μ κ°―μ(νλ κΈμ¨)λ₯Ό μ λλ€.
TMI
#3-1μμλ μΈκΈνμ§λ§, κ°μν λ²μ μ΄ μλ κ²½μ° μΈμ λ°°μ΄μμ 0λ² μΈλ±μ€λ μ°κ²°λ μ μ μ κ°―μκ° μλλΌ, λ€λ₯Έ μ μ μΌλ‘ κ° μ μλ κ°μ μ κ°―μλ€. μ΄ μ¬μ€μ μ ν₯ κ·Έλνμμ μ€μνκ² κΈ°μ΅ν΄λμ΄μΌ νλ€. λ°λμ μλ°©ν₯μΌλ‘ μ°κ²°λλ 무ν₯ κ·Έλνμ λ¬λ¦¬, μ ν₯ κ·Έλνλ λ¨λ°©ν₯μΌλ‘λ μ°κ²°λ μ μλ€. μλ₯Ό λ€μ΄ μ κ·Έλνμμ μμΈμ λ² μ΄μ§κ³Ό 'μ°κ²°'λμ΄μμ§λ§, λ°λλ‘ λ² μ΄μ§μ μμΈκ³Ό 'μ°κ²°'λμ΄μμ§ μμ μ μ΄λ€. 'κ·Έλν λΆμΌμμμ μ°κ²°'μ΄λΌλ λ¨μ΄λ μ΄λ κ² μΈμΈνκ² λ°μ Έλ΄μΌ νλ κ²μ΄λ€. λ°λΌμ "(κ°μν λ²μ μ΄ μλ κ²½μ°) 0λ² μΈλ±μ€λ λ€λ₯Έ μ μ μΌλ‘ κ° μ μλ κ°μ μ κ°―μλ€!"λΌκ³ κΈ°μ΅ν΄λμ.
μ΄ν, μ°κ²°λ μ μ μ λ²νΈλ₯Ό μλ―Ένλ μμ λ°λ‘ μ€λ₯Έμͺ½μ κ°μ€μΉ κ°μ μ¨ λ£λλ€. λ°λΌμ, κ°μ€μΉκ° μλ κ·Έλνλ₯Ό μΈμ λ°°μ΄λ‘ νννλ©΄, κ° λ°°μ΄μ ν¬κΈ°λ λ°λμ νμλ€ (1 + 2 Γ (μ°κ²°λ_κ°μ μ_κ°―μ)).
#3-4 κ°μ€μΉκ° μλ μ ν₯ κ·Έλνμ κ²½μ° (κ°μν λ²μ )

#3-2μ κ°μ λ§₯λ½μΌλ‘ κ°μνκ° κ°λ₯νλ€.
#3-5 μΈμ λ°°μ΄λ€μ λ¨μΌ μΈμ λ°°μ΄λ‘ λ³ν

#3-3μ 0 ~ 6λ² λ°°μ΄μ νλλ‘ ν©μΉ μλ μλ€. #3-3μμ μΈλ±μ€ 0μ ν΄λΉνλ λΆλΆμ νλ κΈμ¨μ²λΌ λ°κΎΌλ€. νλ κΈμ¨μ μλ―Έλ νμ¬ λ°°μ΄κΉμ§ ν¬ν¨ν΄ λμ λ μ μ μ κ°―μλ€. κ·Έλ¦¬κ³ λͺ¨λ λ°°μ΄μ νλλ‘ ν©μ³ singleAdjacencyArrayλ₯Ό λ§λ λ€. ν΄λΉ λ°°μ΄μμ μ΄λ€ μ μ λλ κ°μ μ μ°Έμ‘°νλ λ‘μ§μ λ§μ΄ 볡μ‘νκ² μ§λ§, μ΄λ€ κ·Έλνλ₯Ό νλμ λ°°μ΄λ‘ λ³νν μ μλ€λ κ²μ λΆλͺ ν μ₯μ μ΄λ€.
'κΉ¨μ κ°λ π > μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
κ·Έλν - κΉμ΄ μ°μ νμ (DFS, Depth-First Search) (0) | 2024.09.23 |
---|---|
κ·Έλν - λλΉ μ°μ νμ (BFS, Breadth-First Search) (0) | 2024.09.23 |
λμ νλ‘κ·Έλλ° (Dynamic Programming), μν₯μ(Bottom-up) λ° νν₯μ(Top-down) μ κ·Ό (0) | 2024.01.04 |
μ λ ¬ - ν΅ μ λ ¬ (Quick Sort) (0) | 2023.12.01 |
μ λ ¬ - μ½μ μ λ ¬ (Insertion Sort) (0) | 2023.11.29 |