ποΈ μ±
& κ°μ μ 리/ποΈ λꡬλ μλ£κ΅¬μ‘°μ μκ³ λ¦¬μ¦
12μ₯ λμ νλ‘κ·Έλλ°
dev_sia
2022. 12. 8. 00:26
- 11μ₯μμλ μ¬κ·μ μΌλ‘ μμ±νλ λ²κ³Ό μ¬κ·λ‘ λ³΄λ€ λ³΅μ‘ν λ¬Έμ λ₯Ό ν΄κ²°νλ λ²μ λ°°μ λ€.
- κ·Έλ¬λ μ¬κ·λ‘ μ΄λ€ λ¬Έμ λ₯Ό ν΄κ²°ν μλ μμ΄λ μ λλ‘ μ¬μ©νμ§ μμΌλ©΄ λ λ€λ₯Έ λ¬Έμ κ° λ°μνκΈ°λ νλ€.
- μ¬κ·λ₯Ό μλͺ» μ¬μ©ν κ²½μ° μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λκ° O(2^N)κ³Ό κ°μ κ°μ₯ λλ¦° λΉ μ€ μΉ΄ν κ³ λ¦¬μ μνκ² λ μ μλ€.
- 12μ₯μμλ μ¬κ·μ μλλ₯Ό λλ¦¬κ² λ§λλ κ°μ₯ νν κ±Έλ¦Όλμ μ°Ύκ³ κ·Έλ¬ν μκ³ λ¦¬μ¦μ λΉ μ€ κ΄μ μμ μ΄λ»κ² λνλ΄λμ§, μ΄λ»κ² κ°μ νλμ§λ₯Ό λ°°μ΄λ€.
1. λΆνμν μ¬κ· νΈμΆ
- λμΌν νμ λ¬Έμ μ κ³μ° κ²°κ³Όλ₯Ό μ¬λ¬ λ² νΈμΆνλλ°, λμΌν μΈμλ₯Ό λ£μμ λ νμ λμΌν κ²°κ³Όκ° λμ¬ λ
2. λΉ μ€λ₯Ό μν μμ κ°μ
- μ΄λ¬ν μΆκ°μ μΈ μ¬κ· νΈμΆμ μ λΆ μμ¨ μ μλ λ°©λ²μ΄ μλ€.
- μ½λμμ κ²°κ³Όλ₯Ό λ³μμ μ μ₯νλ©΄ λλ€.
- λΉκ²°μ νμν ν¨μ νΈμΆμ ν λ²λ§ μννκ³ κ·Έ κ²°κ³Όλ₯Ό λ³μμ μ μ₯ν¨μΌλ‘μ¨ ν¨μλ₯Ό λ€μ νΈμΆνμ§ μμλ λκ² νλ κ²μ΄λ€.
3. μ¬κ·μ ν¨μ¨μ±
- λΉ μ€λ λ°μ΄ν° μμκ° Nκ°μΌ λ μΌλ§λ λ§μ λ¨κ³ μκ° νμνκ°λΌλ ν΅μ¬ μ§λ¬Έμ λν λ΅μ΄μλ€.
- λΆνμν μ¬κ· νΈμΆμ νΌνλ κ²μ΄ μ¬κ·λ₯Ό λΉ λ₯΄κ² λ§λλ ν΅μ¬ λΉκ²°μ΄λ€.
- κ³μ° κ²°κ³Όλ₯Ό λ³μμ μ μ₯νλ λΆλΆμ΄ μΈλ» λ΄μλ μ½λμμ μμ£Ό μ¬μν λ³νλλΌλ κΆκ·Ήμ μΌλ‘ ν¨μ μλλ₯Ό O(2^N)μμ O(N)μΌλ‘ λ³νμν¨λ€.
4. νμ λ¬Έμ μ€μ²©
- νΌλ³΄λμΉ μμ΄
- νμ λ¬Έμ : λμΌν λ¬Έμ λ₯Ό μκ² λ§λ€μ΄ ν΄κ²°ν λ, “μμ λ¬Έμ ”λ₯Ό νμ λ¬Έμ λΌκ³ λΆλ₯Έλ€.
- νμ λ¬Έμ κ° μ€μ²©λλ μ΄μ λ fib(n - 2)μ fib(n - 1)μ΄ κ²°κ³Όμ μΌλ‘ λμΌν ν¨μλ₯Ό μ¬λ¬λ² μ€λ³΅ν΄μ νΈμΆνκΈ° λλ¬Έμ΄λ€.
- κ²°κ΅ μκ³ λ¦¬μ¦μ O(2^N)μ μλλ‘ λ§€μ° λλ¦¬κ² νΈμΆλλ€.
5. λ©λͺ¨μ΄μ μ΄μ μ ν΅ν λμ νλ‘κ·Έλλ°
- λμ νλ‘κ·Έλλ°(dynamic programming)μ νμ λ¬Έμ κ° μ€μ²©λλ μ¬κ· λ¬Έμ λ₯Ό μ΅μ ννλ μ μ°¨λ€.
- μΌλ°μ μΌλ‘ λ κ°μ§ κΈ°λ²μ΄ μλ€.
- λ©λͺ¨μ΄μ μ΄μ
(memoization)
- λ¨Όμ κ³μ°ν ν¨μ κ²°κ³Όλ₯Ό κΈ°μ΅ν΄ μ¬κ· νΈμΆμ κ°μμν¨λ€.
- μν₯μμ ν΅ν λμ νλ‘κ·Έλλ°
6. μν₯μμ ν΅ν λμ νλ‘κ·Έλλ°
- μ΄ κΈ°λ²μ ν¨μ¬ λ μΈλ ¨λκ³ μ¬μ§μ΄ κΈ°λ²μ΄λΌκ³ λΆλ₯΄κΈ°λ μ λ§€νλ€.
- μν₯μμ΄ λμ νλ‘κ·Έλλ°μ νλλ‘ κ°μ£Όλλ μ΄μ λ λμ νλ‘κ·Έλλ°μ΄ μ¬κ·μ μΌλ‘ ν μ μλ λ¬Έμ μ λν΄ μ€μ²©λλ νμ λ¬Έμ λ₯Ό μ€λ³΅ νΈμΆνμ§ μκ² ν΄μ£ΌκΈ° λλ¬Έμ΄λ€.
- μ¬κ· λμ 루νλ₯Ό μ¬μ©νλ κ²λ μ΄λ κ² νλ λ°©λ² μ€ νλλ€.
6.2 λ©λͺ¨μ΄μ μ΄μ λ μν₯μ
- λ©λͺ¨μ΄μ μ΄μ μ μ°λλΌλ μ¬κ·κ° λ°λ³΅μ λΉν΄ μ€λ²ν€λκ° λ λ λ€λ μ¬μ€μ κ°κ³Όν΄μλ μ λλ€.
- ꡬ체μ μΌλ‘ λ§νλ©΄, μ¬κ·λ₯Ό μ΄λ»κ² μ¬μ©νλ μ»΄ν¨ν°λ νΈμΆ μ€νμ λͺ¨λ νΈμΆμ κΈ°λ‘ν΄μΌ νλ―λ‘ λ©λͺ¨λ¦¬λ₯Ό μλͺ¨νλ€.
- λ©λͺ¨μ΄μ μ΄μ μ체λ ν΄μ ν μ΄λΈ(νΉμ λ°°μ΄)μ μ¬μ©νλ―λ‘ λ§μ°¬κ°μ§λ‘ λ©λͺ¨λ¦¬ 곡κ°μ μΆκ°λ‘ μλͺ¨νλ€.
- μ¬κ·κ° λ§€μ° μ§κ΄μ μ΄μ§ μμ μ΄μ μΌλ°μ μΌλ‘ μν₯μμ ννλ νΈμ΄ λ λ«λ€.
- μ¬κ·κ° λ μ§κ΄μ μ΄λ©΄ μ¬κ·λ₯Ό μ¬μ©νλ λ©λͺ¨μ΄μ μ΄μ μΌλ‘ λΉ λ₯΄κ² λ§λ€μ΄μΌ νλ€.