1οΈβ£ μμ΄κ³Ό μ¬κ·.
μ°μ΅ λ¬Έμ λ₯Ό νλ€λ³΄λ μμ΄κ³Ό μ¬κ·μ λν΄ λ§μ μνμ μ¬κ³ λ ₯μ΄ νμνκ² λ€λ μκ°μ΄ λ€μμ΅λλ€.
-
μμ΄ : μνμμ μμ λμ΄μ μλ―Έν©λλ€.
- μ¦, μ΄λ€ κ·μ°©μ λ°λΌ λμ΄λ μλ€μ μ§ν©μ λ§ν©λλ€.
- μμ΄μ κ° μλ₯Ό λνλ΄λ μΌλ ¨μ ν (terms)μΌλ‘ ꡬμ±λλ©°, κ° νμ νΉμ μμΉ(index)λ₯Ό κ°μ§λλ€.
- μμ΄μ μλ‘λ λ€μκ³Ό κ°μ κ²λ€μ΄ μμ΅λλ€.
- λ±μ°¨μμ΄: κ° νμ΄ μΌμ ν κ°λ§νΌ μ¦κ°νκ±°λ κ°μνλ μμ΄(μ: 2, 5, 8, 11β¦)(κ° νμ΄ 3μ© μ¦κ°)
- λ±λΉμμ΄: κ° νμ΄ μΌμ ν λΉμ¨λ‘ μ¦κ°νκ±°λ κ°μνλ μμ΄(μ: 3, 9, 27, 81β¦)(κ° νμ΄ μ΄μ νμ 3λ°°)
- νΌλ³΄λμΉ μμ΄: 첫 λ νμ΄ 0κ³Ό 1μ΄κ³ , κ·Έ μ΄νμ κ° νμ΄ λ°λ‘ μ λνμ ν©μΈ μμ΄(μ: 0, 1, 1, 2, 3, 5, 8β¦.)
- μμ΄μ λ€μν μνμ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° μ¬μ©λλ©°, νΉν ν¨μ, κ·Ήν, λ―Έμ λΆ λ±μ μ£Όμ μ λ°μ ν κ΄λ ¨μ΄ μμ΅λλ€.
-
μ¬κ· : νλ‘κ·Έλλ°κ³Ό μνμμ μ¬μ©λλ κ°λ
μΌλ‘, μ΄λ€ ν¨μλ μκ³ λ¦¬μ¦μ΄ μκΈ° μμ μ νΈμΆνλ λ°©μμΈ λ§ν©λλ€.
- μ¬κ·λ₯Ό ν΅ν΄ 볡μ‘ν λ¬Έμ λ₯Ό λ μμ νμ λ¬Έμ λ‘ λλμ΄ ν΄κ²°ν μ μμ΅λλ€.
- μ¬κ· ν¨μλ κΈ°λ³Έμ μΌλ‘ λ κ°μ§ λΆλΆμΌλ‘ ꡬμ±λ©λλ€.
- 1. κΈ°μ 쑰건(Base Case) : μ¬κ· νΈμΆμ΄ λ μ΄μ νμνμ§ μμ κ²½μ°λ₯Ό μ μν©λλ€. κΈ°μ μ‘°κ±΄μ΄ μΆ©μ‘±λλ©΄ ν¨μλ λ μ΄μ μκΈ° μμ μ νΈμΆνμ§ μκ³ μ’ λ£λ©λλ€.
-
2. μ¬κ· νΈμΆ(Recursive Call) : ν¨μκ° μκΈ° μμ μ νΈμΆνμ¬ λ¬Έμ λ₯Ό λ μμ λΆλΆμΌλ‘ λλμ΄ ν΄κ²°νλ €κ³ μλν©λλ€.
- μ¬κ·λ λ¬Έμ λ₯Ό λ¨μνκ³ μ§κ΄μ μΌλ‘ ννν μ μλ κ°λ ₯ν λꡬμ΄μ§λ§, μ¬κ· νΈμΆμ΄ κ³Όλνλ©΄ μ€ν μ€λ²νλ‘(stack overflow)κ° λ°μν μ μμΌλ―λ‘ μ£Όμκ° νμν©λλ€.
- λ°λΌμ μ¬κ·λ₯Ό μ¬μ©ν λλ κΈ°μ 쑰건μ μ μ μνκ³ , νμν κ²½μ° λ°λ³΅(iteration)μΌλ‘ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²λ κ³ λ €ν΄μΌ ν©λλ€.
- μ¬κ·λ λ¬Έμ λ₯Ό λ¨μνκ³ μ§κ΄μ μΌλ‘ ννν μ μλ κ°λ ₯ν λꡬμ΄μ§λ§, μ¬κ· νΈμΆμ΄ κ³Όλνλ©΄ μ€ν μ€λ²νλ‘(stack overflow)κ° λ°μν μ μμΌλ―λ‘ μ£Όμκ° νμν©λλ€.