1. μμ¬μμ΄ μκ³ λ¦¬μ¦ : Greedy algorithm
맀 λ¨κ³λ§λ€ κ° λ¨κ³μμ μ΅μ μ μ νμ νλ€. (νμ¬ μκ°λ§λ€)
μκ³ λ¦¬μ¦μ΄ λ§€μ° κ°λ¨νλ, ꡬν λ΅μ΄ μ λ΅μΈμ§ κ²μ¦μ΄ νμνλ€.
κΈ°λ³Έ νν
2. νμμ€ λ°°μ λ¬Έμ
ν κ°μ νμμ€μ΄ μλλ°, nκ°μ νμ μΌμ μ΄ μκ³ μ΄ νμμ€μ μ΄μ©νμ¬ νμνλ€. κ° νμ iμ λν΄μ μμ μκ° Siμ λ μκ° Fiκ° μ£Όμ΄μ§λ€. κ° νμκ° κ²ΉμΉμ§ μκ² νλ©΄μ κ°μ₯ λ§μ νμμ νμλ₯Ό ν μ μλλ‘ μΌμ μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
β μ λ ₯ ⒠첫 μ€μλ νμμ μ n
β’ λμ§Έ μ€λΆν° n+1μ€κΉμ§ λ μ μ Siμ Fi
β μΆλ ₯ β’ μ‘μ νμλ₯Ό μ°¨λ‘λλ‘ μΆλ ₯(λ μ΄μμ λ΅μ΄ μμ μ μμ)
κ°λ₯ν μ κ·Ό λ°©λ²
- νμμκ°μ΄ 짧μ κ² λΆν° λ£λλ€ -> λ°λ‘ μ‘΄μ¬
- λ€λ₯Έ νμμ κ°μ₯ μ κ² κ²ΉμΉλ νμλΆν° λ£λλ€ -> λ°λ‘ μ‘΄μ¬
- κ°μ₯ 빨리 λλλ νμλΆν° λ£λλ€!!
μ¦λͺ
νμλ€μ λλλ μκ°μ λ°λΌ μ λ ¬νμ¬ νμ λ²νΈλ₯Ό {1 , ... , n} μ΄λΌκ³ νμ. κ·Έλ¬λ©΄ μ λ΅μ 1μ ν¬ν¨νκ±°λ ν¬ν¨νμ§ μλλ€.
μ λ΅μ΄ 1μ ν¬ν¨νμ§ μλλ€λ©΄,
μ λ΅μ 첫 λ΅μ΄ 1κ³Ό κ²ΉμΉμ§ μλλ€λ©΄, 1μ λ£μ΄μ λ΅μ λ κΈΈκ² λ§λ€ μ μμΌλ―λ‘ λͺ¨μμ΄λ€.
μ λ΅μ 첫 λ΅μ΄ 1κ³Ό κ²ΉμΉλ€λ©΄, 첫λ²μ§Έ λ΅μ μ¬μ ν 1λ³΄λ€ λ¦κ² λλλ―λ‘ μ΄λ₯Ό λΉΌκ³ 1μ λ£μΌλ©΄ μ¬μ ν λ΅μ΄ λλ€.
λ°λΌμ μ λ΅μ λ°λμ 1μ ν¬ν¨νλ€κ³ ν μ μλ€.
μ΄μ 1μ μ μΈν λλ¨Έμ§ κ΅¬κ°μ λν΄μ λ΅μ ꡬνλ©΄ λλ€.
3. κ°μ₯ κ°κΉμ΄ μ : closest pair
nκ°μ 2μ°¨μ μ μ΄ μ£Όμ΄μ§κ³ , κ°μ₯ κ°κΉμ΄ λ μ μ¬μ΄μ 거리λ₯Ό ꡬνλ λ¬Έμ μ΄λ€. (x1-x2)^2 + (y1-y2)^2
(1) O(n^2 log n)
κ°μ₯ λ¨μν μκ³ λ¦¬μ¦μΌλ‘, λͺ¨λ κ²½μ°λ₯Ό λ€ κ΅¬νλ€ μ€λ¦μ°¨μ μ λ ¬νμ¬ μ²« κ°μ λ°ν.
λͺ¨λ 거리λ₯Ό ꡬνλλ°μ O(n^2), μ λ ¬μ O(n^2 log n)
(2) O(n log n) : λΆν μ 볡
μΌλ¨ μ λ€μ xμ’ν κΈ°μ€μΌλ‘ μ λ ¬νκ³ , κ°μ΄λ° μ μ κΈ°μ€μΌλ‘ μΌμͺ½/ μ€λ₯Έμͺ½μΌλ‘ λλλ€. (λ°λ³΅)
μ λ ¬μ O(n log n)μ΄ κ±Έλ¦¬μ§λ§ O(n)μκ°μ κ°μ΄λ° μ λ§ μμλΌ μ μμ.
κ°μ₯ κ°κΉμ΄ μ μ μμ λ€μ 3κ°μ§ μ€ νλμΌ κ²μ΄λ€.
- μΌμͺ½ λΆλΆμ κ°μ₯ κ°κΉμ΄ μ
- μ€λ₯Έμͺ½ λΆλΆμ κ°μ₯ κ°κΉμ΄ μ
- ν μ μ μΌμͺ½μ, ν μ μ μ€λ₯Έμͺ½μ μλ κ°μ₯ κ°κΉμ΄ μ
μ¬κΈ°μ μ΅λ 4κ°μ μ λ§ κ³ λ €νλ©΄ λλ μ΄μ λ,
λ§μ½ μ μ¬κ°νμμ μΌμͺ½ μλμ μ μ κ³ λ €νλ€λ©΄,
μ€λ₯Έμͺ½ μ λ€ μ€μμ κ° λ³μ΄ dμΈ μ μ¬κ°ν λ΄λΆμλ κΌμ§μ μΈ 4κ°μ μ κΉμ§λ§ μ‘΄μ¬ν μ μκ³
μ μ΄ λ μ‘΄μ¬νλ€λ©΄ μ μ΄μ μ΅μ κ±°λ¦¬κ° dλ³΄λ€ μκΈ° λλ¬Έμ λͺ¨μμ΄λ€.
λ°λΌμ ν μ μ μΌμͺ½μ, ν μ μ μ€λ₯Έμͺ½μ μλ κ°μ₯ κ°κΉμ΄ μμ μ°Ύμ λ μ΅λ 4nμκ°μ΄ κ±Έλ¦Ό. -> O(n)
κ·Έλ¦¬κ³ λΆν μ 볡μ μ¬κ·μ μΌλ‘ μ§ννκΈ° λλ¬Έμ
κ²°κ³Όμ μΌλ‘ μκ°λ³΅μ‘λλ
T(n) = 2*T(n/2) + O(n) => O(n log n) μ΄λ€.
'π μ 곡 κ³΅λΆ > λ¬Έμ ν΄κ²°κΈ°λ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ¬Έμ ν΄κ²°κΈ°λ²] 7. μ΄λΆ νμ (0) | 2023.04.19 |
---|---|
[λ¬Έμ ν΄κ²°κΈ°λ²] 6. μΈκ·Έλ¨ΌνΈ νΈλ¦¬ (0) | 2023.04.18 |
[λ¬Έμ ν΄κ²°κΈ°λ²] 4. μλ£κ΅¬μ‘°2 (0) | 2023.04.16 |
[λ¬Έμ ν΄κ²°κΈ°λ²] 3. μλ£κ΅¬μ‘°1 (0) | 2023.04.16 |
[λ¬Έμ ν΄κ²°κΈ°λ²] 2. κΈ°μ΄μν (0) | 2023.04.16 |