1. μκ³ λ¦¬μ¦μ΄λ?
2. μκ° λ³΅μ‘λ (Time Complexity)
2.1 μ μ
- μ
λ ₯μ ν¬κΈ°μ νλ‘κ·Έλ¨ μ€ν μκ°μ κ΄κ³
- μ€μ μκ°μ μ§μ μΈ‘μ νλ κ² μλλΌ, μ°μ° νμ μ¦κ° μΆμΈλ₯Ό κΈ°μ€μΌλ‘ λΆμ
2.2 κ°μ₯ ν° μν₯μ μ£Όλ μμ
- λ°λ³΅λ¬Έ (for, while λ±)μ΄ μκ° λ³΅μ‘λλ₯Ό κ²°μ νλ ν΅μ¬ μμ
- μ€μ²© 루νκ° λμ΄λλ©΄ 볡μ‘λλ κΈ°νκΈμμ μΌλ‘ μ¦κ°
2.3 μ κ·Όμ νκΈ°λ²
- μκ³ λ¦¬μ¦μ μ±λ₯μ λνλΌ λλ λ³΄ν΅ μ κ·Όμ νκΈ°λ²(Asymptotic Notation)μ μ¬μ©
μ κ·Όμ νκΈ°λ²(Asymptotic Notation)
- μ κ·Όμ νκΈ°λ²μ μκ³ λ¦¬μ¦μ μ±λ₯μ "μ
λ ₯ ν¬κΈ° nμ΄ μΆ©λΆν μ»€μ§ λ"μ μ€ν μκ° μ¦κ° μΆμΈλ‘ νννλ λ°©λ²
- μ¦, μμ nμμλ νλμ¨μ΄λ μμ μ°¨μ΄κ° μν₯μ μ€ μ μμ§λ§, ν° nμμμ μ±μ₯λ₯ μ΄ μκ³ λ¦¬μ¦μ μ§μ§ μ±λ₯μ 보μ¬μ€λ€κ³ 보λ κ²
- κ°μ₯ ν° ν(NΒ²)λ§ λ¨κ²¨μ λ¨μν O(NΒ² + 3N + 5) β O(NΒ²)
β μκ³ λ¦¬μ¦μ ν¨μ¨μ±μ μνμ μΌλ‘ λ¨μνν΄μ νννλ λꡬ
-
Big-O (O)
- μ΅μ
μ κ²½μ°(Worst Case)λ₯Ό λνλ
- μκ³ λ¦¬μ¦ μ€ν μκ°μ μνμ
-
Big-Theta (Ξ)
- νκ· μ μΈ κ²½μ°(Average Case)λ₯Ό λνλ
- μκ³ λ¦¬μ¦ μ€ν μκ°μ μ νν μ¦κ°μ¨
-
Big-Omega (Ξ©)
- μ΅μ μ κ²½μ°(Best Case)λ₯Ό λνλ
- μκ³ λ¦¬μ¦ μ€ν μκ°μ ννμ
2.4 μμ£Ό 보μ΄λ μκ° λ³΅μ‘λ
- O(1): μμ μκ° (μ: λ°°μ΄ μΈλ±μ€ μ κ·Ό β RAMμ μκ°νλΌ!)
- O(log n): λ‘κ·Έ μκ° (μ: μ΄μ§ νμ, λ°μ΄ 2μ§μλ€!)
- O(n): μ ν μκ° (μ: λ°°μ΄ μ 체 νμ)
- O(n log n): λ‘κ·Έ μ ν μκ° (μ: ν¨μ¨μ μΈ μ λ ¬ μκ³ λ¦¬μ¦)
- O(nΒ²): μ΄μ°¨ μκ° (μ: λ²λΈ μ λ ¬)
- O(2βΏ): μ§μ μκ° (μ: λΆλΆμ§ν© μμ±)
- O(n!): ν©ν λ¦¬μΌ μκ° (μ: μΈνμ μν λ¬Έμ Brute-Force)

2.5 μ λ ¬ μκ³ λ¦¬μ¦ μκ° λ³΅μ‘λ
| μκ³ λ¦¬μ¦ | νκ· | μ΅μ
| μ΅μ |
|---|
| λ²λΈ μ λ ¬ | O(nΒ²) | O(nΒ²) | O(n) |
| μ ν μ λ ¬ | O(nΒ²) | O(nΒ²) | O(nΒ²) |
| μ½μ
μ λ ¬ | O(nΒ²) | O(nΒ²) | O(n) |
| λ³ν© μ λ ¬ | O(n log n) | O(n log n) | O(n log n) |
| ν΅ μ λ ¬ | O(n log n) | O(nΒ²) | O(n log n) |
| ν μ λ ¬ | O(n log n) | O(n log n) | O(n log n) |
3. κ³΅κ° λ³΅μ‘λ (Space Complexity)
3.1 μ μ
- μ
λ ₯ ν¬κΈ°μ λ©λͺ¨λ¦¬ 곡κ°μ κ΄κ³.
- λ¨μν μ½λ ν¬κΈ°λΏλ§ μλλΌ, λ³μ, ν¨μ νΈμΆ μ€ν, λμ λ©λͺ¨λ¦¬ ν λΉ λ±μ λͺ¨λ ν¬ν¨
- μ€λλ μκ³ λ¦¬μ¦μ μ±λ₯ νλ¨μ μ¬μ©λλ μ²λλ μ£Όλ‘ κ³΅κ° λ³΅μ‘λ보λ€λ μκ° λ³΅μ‘λμΈ κ²½μ°κ° λ§μ
3.2 κ΅¬μ± μμ
- κ³ μ 곡κ°: νλ‘κ·Έλ¨ μ½λ, μμ, μ»΄νμΌ μ ν λΉλλ κ³΅κ° (μ
λ ₯ ν¬κΈ°μ 무κ΄)
- κ°λ³ 곡κ°: μ
λ ₯ ν¬κΈ°μ λ°λΌ λ¬λΌμ§λ κ³΅κ° (λ°°μ΄, λμ ꡬ쑰, μ¬κ· μ€ν λ±)
3.3 μμ
- λ°°μ΄μ nκ°μ λ°μ΄ν°λ₯Ό μ μ₯ β O(n)
- μ¬κ· μκ³ λ¦¬μ¦ νΈμΆ κΉμ΄κ° n β O(n) μ€ν κ³΅κ° νμ