Data Structure
π§© [Data Structure] μλ£κ΅¬μ‘°μ μ¬κ·.
π Intro.
- βοΈ μ¬κ·λ βλ΄ μμ λλ₯Ό μ°Ύλ κ²βμ΄λ€.
- βοΈ μ¦, μ±κ²©μ κ°κ³ ν¬κΈ°λ§ μμ λλ₯Ό μ°Ύμ ν° λμ μμ λκ° μ°κ²°λ κ΄κ³λ₯Ό λλ¬λ΄λ κ²μ΄λ€.
β
1οΈβ£ μ¬κ·μ μμ.
-
1. ν©ν 리μΌ(Factorial)
- βοΈ
n! = n x (n-1)!
μ΄λ€.
- βοΈ ν¬κΈ°κ° nμΈ ν©ν 리μΌμ ν¬κΈ°κ°
n-1
μΈ ν©ν 리μΌμ ν¬ν¨νκ³ μλ€.
- βοΈ 1λΆν° nκΉμ§ κ³±νλ n!(n ν©ν 리μΌ)μ
n! = 1 x 2 x 3 x ... x (n-1) x n
μ΄λ€.
- βοΈ μ¬κΈ°μ 맨 λμ μλ nλ§ μ μΈνλ©΄
1 x 2 x 3 x ... x (n-1)
μΈλ° μ΄κ²μ (n-1)!
μ΄λ€.
- βοΈ n!μ μ¬κΈ°μ nλ§ λ κ³±νλ©΄ λλ€.
- μ¦,
n! = n x (n-1)!
μ΄λ€.
β
2οΈβ£ μ¬κ·μ ꡬ쑰.
- βοΈ μ΄λ€ λ¬Έμ λ ν¨μ λ±μ΄ μμ κ³Ό μ±κ²©μ΄ λκ°μ§λ§ ν¬κΈ°κ° λ μμ λ¬Έμ λ₯Ό νλ μ΄μ ν¬ν¨νκ³ μμ λ μ¬κ·μ ꡬ쑰λ₯Ό κ°κ³ μλ€κ³ λ§νλ€.
- βοΈ μκΈ° μμ μ μ μνκ±°λ μ°Έμ‘°νλ ꡬ쑰λ₯Ό μλ―Ένλ€.
- βοΈ μ¦, μ΄λ€ κ°λ
, ν¨μ, λ°μ΄ν° ꡬ쑰, μκ³ λ¦¬μ¦ λ±μ΄ μμ μ λ°λ³΅μ μΌλ‘ νΈμΆνκ±°λ ν¬ν¨νλ λ°©μμ λ§νλ€.
β
3οΈβ£ μ¬κ·μ ꡬ쑰μ κ°λ
.
- βοΈ μ μ : μκΈ° μμ μ μ°Έμ‘°νκ±°λ ν¬ν¨νλ ꡬ쑰.
- βοΈ μ£Όμ νΉμ§ : λ¬Έμ λ₯Ό λ μμ λΆλΆ λ¬Έμ λ‘ λλκ³ , μ΄ λΆλΆ λ¬Έμ λ₯Ό ν΄κ²°ν λ€ κ²°κ³Όλ₯Ό κ²°ν©νμ¬ μ 체 λ¬Έμ λ₯Ό ν΄κ²°ν¨.
- βοΈ μ’
λ£ μ‘°κ±΄(Base Case) : 무νν λ°λ³΅λμ§ μλλ‘ λ©μΆλ μ‘°κ±΄μ΄ λ°λμ νμν¨.
β
4οΈβ£ μ¬κ·μ ꡬ쑰μ μ₯λ¨μ .
μ₯μ |
λ¨μ |
λ¬Έμ λ₯Ό λ
Όλ¦¬μ μΌλ‘ νννκΈ° μ½λ€ |
λ°λ³΅ νΈμΆλ‘ μΈν΄ μ€ν μ€λ²νλ‘μ° μνμ΄ μλ€ |
볡μ‘ν λ¬Έμ λ₯Ό κ°κ²°νκ² ννν μ μλ€ |
λΉν¨μ¨μ μΈ λ©λͺ¨λ¦¬ μ¬μ© κ°λ₯μ± |
μ’
λ£ μ‘°κ±΄(Base Case)λ§ λͺ
ννλ©΄ ꡬνμ΄ μ½λ€ |
λ°λ³΅λ¬Έ(Iterative)λ³΄λ€ μλκ° λ릴 μ μλ€ |
β
5οΈβ£ μ¬κ·μ ꡬ쑰μ ν΅μ¬ μμ.
- βοΈ Base Case (μ’
λ£ μ‘°κ±΄) : λ μ΄μ μ¬κ·κ° μ§νλμ§ μλ 쑰건μ.
- βοΈ Recursive Case(μ¬κ· 쑰건) : λ¬Έμ λ₯Ό λ μμ λ¨μλ‘ λλκ³ μκΈ° μμ μ νΈμΆν¨.
- βοΈ Stack λ©λͺ¨λ¦¬ μ¬μ© : μ¬κ· νΈμΆλ§λ€ μλ‘μ΄ μ€ν νλ μμ΄ μμ±λ¨.
β
6οΈβ£ νλ‘κ·Έλλ°κ³Ό μ¬κ·(Recursion)
- βοΈ λλΆλΆμ νλ‘κ·Έλλ° μΈμ΄λ ν¨μ λ΄λΆμμ μμ μ νΈμΆνλ μκΈ°νΈμΆ κΈ°λ₯μ μ 곡νλ€.
- βοΈ μμ΄λ‘λ recursionμ΄λΌκ³ νκ³ μ°λ¦¬λ§λ‘ λ³΄ν΅ μ¬κ·λΌκ³ νλ€.
- βοΈ μ΄λ° μλ―Έμμ, μλ£κ΅¬μ‘°μ μκ³ λ¦¬μ¦μ κ΄κ³ μ€μ¬μ μ¬κ³ λ°©μμ νλ ¨νλ λꡬμ΄κΈ°λ νλ€.
β
7οΈβ£ μ¬κ·μ μλ£κ΅¬μ‘° κ·Έλ¦¬κ³ μκ³ λ¦¬μ¦.
- βοΈ μ¬κ·λ₯Ό λͺ¨λ₯΄κ³ λ μλ£κ΅¬μ‘°μ μκ³ λ¦¬μ¦μ 곡λΆν μ μλ€.
- βοΈ μ¬κ·λ μ»΄ν¨ν° κ³Όν μ΄λ‘ μ κ·Όκ°μ μ΄λ£¨λ μ€μ κ°λ
.
- βοΈ μ΄λ ΅κ±°λ νΉλ³ν μ£Όμ κ° μλ.
- βοΈ μ»΄ν¨ν° κ³Όνμ 곡λΆνλ€ λ³΄λ©΄ μ¬κ·λ λμμμ΄ λ€μν μΌκ΅΄λ‘ μΆνν¨.