λ³Έ κ²μκΈμ PCλ²μ μ μ΅μ ν λμ΄μμ΅λλ€.
μ λ ₯
첫째 μ€μ Vμ Eκ° λΉμΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) λ€μ Eκ°μ μ€μλ κ°κ° μΈ κ°μ μ μ a, b, cκ° μ£Όμ΄μ§λ€. aλ² λ§μμμ bλ² λ§μλ‘ κ°λ κ±°λ¦¬κ° cμΈ λλ‘κ° μλ€λ μλ―Έμ΄λ€. (a → bμμ μ£Όμ) 거리λ 10,000 μ΄νμ μμ°μμ΄λ€. (a, b) μμ΄ κ°μ λλ‘κ° μ¬λ¬ λ² μ£Όμ΄μ§μ§ μλλ€.
μΆλ ₯
첫째 μ€μ μ΅μ μ¬μ΄ν΄μ λλ‘ κΈΈμ΄μ ν©μ μΆλ ₯νλ€. μ΄λ κ²½λ‘λ₯Ό μ°Ύλ κ²μ΄ λΆκ°λ₯ν κ²½μ°μλ -1μ μΆλ ₯νλ€.
ν΄κ²° λ°©λ²
μ°μ λ€λ₯Έ μ΅λ¨ κ²½λ‘ λ¬Έμ μ μ½κ° λ€λ₯Ό μ μλ€.
μ§κΈκΉμ§μ μ΅λ¨ κ²½λ‘ λ¬Έμ λ νΉμ μ§μ κΉμ§μ μ΅λ¨ κ²½λ‘, νΉμ λ€λ₯Έ μ§μ μ κ±°μ³μ νΉμ μ§μ κΉμ§μ μ΅λ¨ κ²½λ‘μλ€λ©΄
μ΄λ²μλ μ¬μ΄ν΄μ΄ μλ κ²½λ‘ μ€ μ΅λ¨ κ²½λ‘λ₯Ό νμνλ κ²μ΄ ν΅μ¬μ΄λ€.
μ¬μ΄ν΄? μ²μμλ λ²¨λ§ ν¬λ λ¬Έμ μΈ μ€ μμλ€.
νμ§λ§ λλ‘ κΈΈμ΄κ° μμκ° μ£Όμ΄μ§μ§ μμ κ²μ λ³΄κ³ λ€μ΅μ€νΈλΌλ‘ λ€μ λ°λ‘μ‘κ³ ν΄κ²°νλ €κ³ νλ€.
λλ μ°μ λ΄κ° μ§κΈκΉμ§ μ΅λ¨ κ²½λ‘ λ¬Έμ λ₯Ό μ ν λ ꡬννλ λ°©μμΌλ‘ λκ°μ΄ λ€μ΅μ€νΈλΌλ₯Ό ꡬννλ€.
μλ λ§ν¬λ₯Ό μ°Έκ³ νλ©΄ ꡬννλ λ€μ΅μ€νΈλΌ μ½λλ₯Ό λ³Ό μ μλ€.
github.com/k906506/Algorithm/blob/master/3.%20Dijkstra.py
κ·Έλ κ² κ΅¬ννκ³ ν΄κ²°νλ €λλ° μ΄ λ°©λ²μΌλ‘ ν΄κ²°ν μ μμμ κΉ¨λ¬μλ€.... γ
μ°μ λ¬Έμ λ₯Ό μ λλ‘ μ΄ν΄ν νμκ° μμλ€.
μ£Όμ΄μ§ μ λ ₯ κ°μ 3μ μΆλ ₯νλλ° μλμ κ°μ ꡬκ°μ΄ μ λ΅μ΄λ―λ‘ 3μ΄ μΆλ ₯λλ κ²μ΄λ€.
μ 리ν΄λ³΄μλ©΄ λͺ¨λ μ μ μ μμ μ§μ μΌλ‘ μ‘κ³ λ€μ΅μ€νΈλΌλ‘ νμνλ©΄μ
μμ μ§μ μ μ μ₯λ 거리 μ€ κ°μ₯ 짧μ 거리λ₯Ό μΆλ ₯νλ©΄ λλ λ¬Έμ μλ€. (ν루μ΄λ μμ¬...?)
μμ§κΉμ§ μ΄ν΄κ° μλ μ μμΌλ μ μμ μ§μ μ μ μ₯λ κ°μ₯ 짧μ κ±°λ¦¬κ° μ λ΅μ΄ λλμ§ λͺ¨λ₯Ό μ μλ€.
κ·Έ μ΄μ λ κ°λ¨νλ€. λ¬Έμ μμ μνλ κ²μ μμ μ§μ μΌλ‘ λλμμ¬ μ μλ 거리 μ€ κ°μ₯ 짧μ 거리.
μ¬μ§μ΄ κ·Έλνλ λ¨λ°©ν₯μΌλ‘ μ£Όμ΄μ‘κΈ° λλ¬Έμ μμ μ§μ μΌλ‘ λμμ¬ μ μμ΄μΌνλ€.
μ 리ν΄λ³΄μλ©΄
1. μμ μ§μ μΌλ‘ λλμμ¬ μ μμ΄μΌνλ€.
2. μμ μ§μ μΌλ‘ λλμμ¬ μ μλ 거리 μ€ κ°μ₯ 짧μ 거리.
μλ¬΄νΌ μ΄ν΄λ₯Ό μ λλ‘ νκ³ λ€μ λ€μ΅μ€νΈλΌ μ½λλ₯Ό λ΄€λλ° λ€μ΅μ€νΈλΌλ₯Ό μ€ννλ λΆλΆμμ
μμμ§μ μ distanceλ₯Ό 무쑰건 0μΌλ‘ μ΄κΈ°νν΄μ£Όλ κ³Όμ μ΄ μμ΄μ μ μμ μΌλ‘ μΆλ ₯λμ§ μλ κ²μ΄μλ€!
μμ μ£Όμ μ²λ¦¬ν λΆλΆμ μ§μ쀬λ€.
μ΅μ’ μ μΌλ‘ λͺ¨λ μ μ μ λν΄ νμ κ³Όμ μ λ°λ³΅νλ©΄μ κ°μ₯ 짧μ 거리λ₯Ό μΆλ ₯νλ©΄ λλ€.
μλ μΆλ ₯λ¬Έμ μμμλΆν° μ°¨λ‘λλ‘ 1λ² μ μ ~ 3λ² μ μ μ μμ μ μ μΌλ‘ μ£Όμμ λμ distanceμ΄λ€.
1λ² μ μ μ΄ μμ μ μ μΈ κ²½μ° λ€μ λμμ¬ μ μμΌλ―λ‘ Fail
2λ² μ μ μ΄ μμ μ μ μΈ κ²½μ° 3μΌλ‘ κ°λ€κ° λ€μ 2λ‘ λμμ€λ κ²½μ°μ΄λ―λ‘ 3
3λ² μ μ μ΄ μμ μ μ μΈ κ²½μ° 2λ‘ κ°λ€κ° λ€μ 3μΌλ‘ λμμ€λ κ²½μ°μ΄λ―λ‘ 3
λ°λΌμ μ λ΅μ 3μ΄ λλ€.
νμ΄μ¬μΌλ‘ ꡬνν μ½λμ΄λ€.
C++λ‘ κ΅¬νν μ½λμ΄λ€.
λ€μ΅μ€νΈλΌμ λν κ³ μ κ΄λ μ κΉ¬ λ¬Έμ μλ€.
μ§κΈκΉμ§ 무쑰건 μμ μ μ μ distanceλ₯Ό 0μΌλ‘ μ‘κ³ λ¬Έμ λ₯Ό ν΄κ²°νμλλ° μ΄ λ¬Έμ λ₯Ό ν΅ν΄ λ€λ₯Έ μκ°μ κ°μ§ μ μμλ€.
λ΄μΌμ μ΄μ λ¬Έμ μΈ KCM-Travelμ λν νμ΄λ₯Ό μ¬λ €μΌκ² λ€.
λμ€μ νκ³ λ³΄λ λ€μ΅μ€νΈλΌλ₯Ό ν루μ΄λ μμ¬μ²λΌ νμλ€λ κ²μ μκ² λλ€.
κ·Έλμ ν루μ΄λ μμ¬λ‘ λ€μ ꡬννκ³ λλ €λ΄€λλ ν΅κ³Όνλ€.
μ¬μ§μ΄ μ’ λ λΉ λ₯Έ μλλ‘ μΆλ ₯λλ κ²μ λ³Ό μ μμλ€.
ν루μ΄λ μμ¬λ‘ ꡬνν λ μ£Όμν μ μ λ°λ³΅λ¬Έ νμ μ’νμ μμμ΄λ€.
"μμ (i) -> μ€κ°μ κ±°μΉλ μ’ν (j) -> λμ°© (k)" μ΄λ° μμΌλ‘ ꡬννλ©΄ Time Outμ΄ λ°μν κ°λ₯μ±μ΄ λλ€.
"μμ (j) -> μ€κ°μ κ±°μΉλ μ’ν (k) -> λμ°© (i)" μ΄λ° μμΌλ‘ ꡬνν΄μΌνλ€.
μλ μ½λλ₯Ό μ°Έκ³ νλ©΄ μ΄ν΄κ° μ½κ² λ κ²μ΄λ€.
μλλ ν루μ΄λ μμ¬λ‘ ꡬνν μ½λμ΄λ€.
'βοΈ μ½ν μ€λΉ > Shortest Path' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ΅λ¨ κ²½λ‘] [Python] 10217. KCM Travel - GOLD β (0) | 2021.04.17 |
---|