μ¬κ· μκ³ λ¦¬μ¦
μ¬κ· μκ³ λ¦¬μ¦μ΄λ μκ³ λ¦¬μ¦ μμ μ μ¬μ©ν΄ μ μλ μκ³ λ¦¬μ¦μ λ§νλ€. λ€μ λ§ν΄ μκΈ° μμ μ μκ³ λ¦¬μ¦ μμμ κ³μ νΈμΆνλ κ²μ΄λ€. μ¬κ· μκ³ λ¦¬μ¦μ κ³μν΄μ μκΈ° μμ μ νΈμΆνκΈ° λλ¬Έμ μμΉ«νλ©΄ 무ν루νλ₯Ό λ μ μλ€. λ°λΌμ μ¬κ· ν¨μλ₯Ό ꡬμ±ν λμλ λ κ°μ§ μμκ° νμνλ€.
μ¬κ· μΌμ΄μ€ (Recursion) : μ°¨νμ μ¬κ·νΈμΆμ μμμ§ λΆλ¬Έμ λ€(subproblems)μ λμμΌλ‘ μ΄λ£¨μ΄μ§λ€.
λ² μ΄μ€ μΌμ΄μ€(base case): λΆλ¬Έμ λ€μ΄ μΆ©λΆν μμμ§λ©΄, μκ³ λ¦¬μ¦μ μ¬κ·λ₯Ό μ¬μ©νμ§ μκ³ μ΄λ€μ μ§μ ν΄κ²°νλ€
λ€μ λ§ν΄ μ¬κ·ν¨μλ λ μμμ§λ λ°©ν₯μΌλ‘ μ§νλμ΄μΌ νκ³ (λ² μ΄μ€ μΌμ΄μ€λ₯Ό ν₯ν΄ μ§νλ¨) λ² μ΄μ€ μΌμ΄μ€μμλ λ μ΄μ μ¬κ·λ₯Ό μ¬μ©νμ§ μκ³ μκ³ λ¦¬μ¦μ΄ μ’ λ£λμ΄μΌ νλ€.
μ¬κ·μ μλμ리
μ¬κ·μ μλμ리λ₯Ό λ¨Όμ κ·Έλ¦ΌμΌλ‘ 보μ.
μ¬κ·μ λ¨κ³ λ³ μνμ 보λλ‘ νμ.
1. μκ³ λ¦¬μ¦μ μννλ€.
2. μν μ€ μ¬κ·ν¨μκ° νΈμΆλλ€.
3. κΈ°μ‘΄μ μννλ μκ³ λ¦¬μ¦μ μλ£νμ§ μκ³ νΈμΆλ μ¬κ· μκ³ λ¦¬μ¦μ λ² μ΄μ€ μΌμ΄μ€κΉμ§ μννλ€.
4. λ² μ΄μ€ μΌμ΄μ€κ° μ’ λ£λλ©΄, μ΄μ μΌλ‘ λμμ μκ³ λ¦¬μ¦μ λ§μ μννλ€.
5. μ²μ νΈμΆνλ μκ³ λ¦¬μ¦μ΄ μλ£λ λκΉμ§ λ°λ³΅ν΄μ λμκ°λ€.
κ·Έλ¦Όμμ λ³Ό μ μλ―μ΄ μν μμλ 1->2->3->...->9->10μ΄λ€. μ€μν κ²μ λ λ€λ₯Έ μ¬κ·ν¨μκ° νΈμΆλλ©΄ μννλ μκ³ λ¦¬μ¦μ μλ£νμ§ μκ³ λ°λ‘ λ€λ₯Έ μ¬κ· ν¨μλ‘ λμ΄κ°λ€λ κ²μ΄λ€.
μ¬κ·μ κΈ°λ³Έ κ·μΉ
- λ² μ΄μ€ μΌμ΄μ€
λ² μ΄μ€ μΌμ΄μ€λ₯Ό νμ κ°μ ΈμΌ νλ©°, μ΄λ μ¬κ· μμ΄ ν΄κ²°λ μ μμ΄μΌ νλ€.
- μ§νλ°©ν₯
μ¬κ·μ μΌλ‘ ν΄κ²°λμ΄μΌ ν κ²½μ°, μ¬κ·νΈμΆμ νμ λ² μ΄μ€ μΌμ΄μ€λ₯Ό ν₯νλ λ°©ν₯μΌλ‘ μ§νλμ΄μΌ νλ€.
- μ μμλ κ°μ
λͺ¨λ μ¬κ·νΈμΆμ΄ μ λλ‘ μλνλ€κ³ κ°μ νλΌ!
- μ μ ν μ¬μ©
κΌ νμν λλ§ μ¬μ©νλΌ, μ μ₯/볡ꡬ λλ¬Έμ μ±λ₯μ΄ μ νλκΈ° λλ¬Έμ΄λ€.
μμ λ§νλ―, μ¬κ· ν¨μλ κ³μν΄μ ν¨μλ₯Ό νΈμΆνκΈ° λλ¬Έμ μ’ λ£ν μ μμ΄μΌ νλ€. κ·Έλ¬κΈ° μν΄μλ μ§νλ°©ν₯μ΄ λ² μ΄μ€ μΌμ΄μ€λ₯Ό ν₯ν΄μΌ νκ³ , λ² μ΄μ€ μΌμ΄μ€λ μ¬κ· μμ΄ ν΄κ²°λμ΄μΌ νλ€.
λν μ¬κ·ν¨μλ λ λ€λ₯Έ μ¬κ·ν¨μκ° νΈμΆλλ©΄ μννλ μκ³ λ¦¬μ¦μ μλ£νμ§ μκ³ λ°λ‘ λ€λ₯Έ μ¬κ· ν¨μλ‘ λμ΄κ°κΈ° λλ¬Έμ λ©λͺ¨λ¦¬λ₯Ό λ§μ΄ μ°¨μ§νμ¬ μ±λ₯μ΄ μ νλ μ μμΌλ―λ‘ μ μ ν μ¬μ©ν΄μΌ νλ€!
λ² μ΄μ€ μΌμ΄μ€κ° μ‘΄μ¬νμ§ μκ±°λ, λλ¬ν μ μλ μ¬κ·, λλ μ¬κ· μΌμ΄μ€κ° λ² μ΄μ€ μΌμ΄μ€λ₯Ό ν₯ν΄ κ°μ§ μλλ€λ©΄ μλͺ» μ€κ³λ μ¬κ·μ΄λ€. μ΄λ λΆμ νν κ²°κ³Ό, λ―Έμ μ§(nonretmination), μ μ₯μ μν κΈ°μ΅μ₯μ κ³ κ°μ μν₯μ λΌμΉλ€.