μκ³ λ¦¬μ¦μ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μνλλ μ μ°¨λ λ¨κ³μ μ§ν©μ λλ€. μ»΄ν¨ν° κ³Όνμμ μκ³ λ¦¬μ¦μ μ£Όμ΄μ§ μ λ ₯μ νΉμ μΆλ ₯μΌλ‘ λ³ννλ κ³Όμ μ λλ€. μκ³ λ¦¬μ¦μ μννΈμ¨μ΄ κ°λ°μ ν΅μ¬μ λλ€. ν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ νλ‘κ·Έλ¨μ μ±λ₯μ ν¬κ² ν₯μν μ μμ΅λλ€. λ°λΌμ, μκ³ λ¦¬μ¦μ μ΄ν΄νκ³ λΆμνλ λ₯λ ₯μ νλ‘κ·Έλλ¨Έμκ² λ§€μ° μ€μν©λλ€. μ΄ κΈμ μκ³ λ¦¬μ¦μ κΈ°λ³Έ κ°λ κ³Ό μ±λ₯λΆμ λ°©λ²μ μκ°νμ¬ μ΄λ³΄μλ€λ μ½κ² μ΄ν΄ν μ μλλ‘ λκΈ° μν΄ μμ±λμμ΅λλ€.
β£ λͺ©μ°¨
01. μκ³ λ¦¬μ¦μ κ°μπ
μκ³ λ¦¬μ¦μ μ μ
μκ³ λ¦¬μ¦μ νΉμ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν λͺ νν μ μ°¨μ λλ€. μκ³ λ¦¬μ¦μ μ νν λ¨κ³λ₯Ό κ±°μ³ κ²°κ³Όλ₯Ό λμΆν΄μΌ ν©λλ€.
μκ³ λ¦¬μ¦μ μμ¬
μκ³ λ¦¬μ¦μ΄λΌλ μ©μ΄λ νλ₯΄μμ μνμ μ콰리μ¦λ―Έ(Al-Khwarizmi)μ μ΄λ¦μμ μ λλμμ΅λλ€. κ·Έμ μ μμμ μ λλ μ΄ μ©μ΄λ νλ μ»΄ν¨ν° κ³Όνμμ λ리 μ¬μ©λκ³ μμ΅λλ€.
μΌμ μνμμμ μκ³ λ¦¬μ¦ μμ
- μ리 λ μνΌ: λ¨κ³λ³λ‘ λͺ νν μ§μμ¬νμ λ°λ¦ λλ€.
- κΈΈ μ°ΎκΈ°: μμ μ§μ μμ λͺ©μ μ§κΉμ§ μ΅μ μ κ²½λ‘λ₯Ό μ°Ύμ΅λλ€.
02. μκ³ λ¦¬μ¦μ μ’ λ₯π§©
λΆλ₯ κΈ°μ€μ λ°λ₯Έ μκ³ λ¦¬μ¦μ μ’ λ₯
μ λ ¬ μκ³ λ¦¬μ¦
- λ²λΈ μ λ ¬: μΈμ ν λ μμλ₯Ό λΉκ΅νμ¬ μ λ ¬νλ λ¨μν μκ³ λ¦¬μ¦μ λλ€.
- ν΅ μ λ ¬: λΆν μ 볡 κΈ°λ²μ μ΄μ©νμ¬ λ¦¬μ€νΈλ₯Ό λΉ λ₯΄κ² μ λ ¬ν©λλ€.
νμ μκ³ λ¦¬μ¦
- μ΄μ§ νμ: μ λ ¬λ 리μ€νΈμμ μ€κ° κ°μ κΈ°μ€μΌλ‘ νμ λ²μλ₯Ό λ°μΌλ‘ μ€μ¬κ°λ©° μ°Ύμ΅λλ€.
- μ ν νμ: 리μ€νΈμ μ²μλΆν° λκΉμ§ μμ°¨μ μΌλ‘ νμν©λλ€.
κ·Έλν μκ³ λ¦¬μ¦
- λ€μ΅μ€νΈλΌ μκ³ λ¦¬μ¦: κ°μ€μΉ κ·Έλνμμ μ΅λ¨ κ²½λ‘λ₯Ό μ°Ύλ μκ³ λ¦¬μ¦μ λλ€.
- A μκ³ λ¦¬μ¦*: ν΄λ¦¬μ€ν±μ μ΄μ©ν μ΅λ¨ κ²½λ‘ νμ μκ³ λ¦¬μ¦μ λλ€.
03. μκ³ λ¦¬μ¦ μ±λ₯λΆμ π
μ±λ₯λΆμμ νμμ±
μκ³ λ¦¬μ¦μ μ±λ₯μ λΆμνλ κ²μ ν¨μ¨μ μΈ νλ‘κ·Έλ¨μ μμ±νκΈ° μν΄ μ€μν©λλ€. μ±λ₯ λΆμμ ν΅ν΄ μκ³ λ¦¬μ¦μ μ₯λ¨μ μ νμ ν μ μμ΅λλ€.
μκ° λ³΅μ‘λμ κ³΅κ° λ³΅μ‘λ
λΉ μ€ νκΈ°λ² (Big-O Notation)
λΉ μ€ νκΈ°λ²μ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λμ κ³΅κ° λ³΅μ‘λλ₯Ό λνλ΄λ λ° μ¬μ©λ©λλ€. μ£Όλ‘ μ΅μ μ κ²½μ° μ±λ₯μ νκ°ν©λλ€.
μκ° λ³΅μ‘λ μμ
- O(1): μμ μκ° λ³΅μ‘λ. μ λ ₯ ν¬κΈ°μ μκ΄μμ΄ μΌμ ν μκ°μ΄ μμλ©λλ€.
- O(n): μ ν μκ° λ³΅μ‘λ. μ λ ₯ ν¬κΈ°μ λΉλ‘νμ¬ μκ°μ΄ μ¦κ°ν©λλ€.
- O(n^2): μ΄μ°¨ μκ° λ³΅μ‘λ. μ λ ₯ ν¬κΈ°μ λν΄ μ κ³±μ μκ°μ΄ μμλ©λλ€.
κ³΅κ° λ³΅μ‘λ μμ
μκ³ λ¦¬μ¦μ΄ μ¬μ©νλ λ©λͺ¨λ¦¬ 곡κ°μ μμ λνλ λλ€. μ λ ₯ ν¬κΈ°μ λΉλ‘νκ±°λ μΌμ ν λ©λͺ¨λ¦¬λ₯Ό μ¬μ©ν μ μμ΅λλ€.
μκ³ λ¦¬μ¦μ ν¨μ¨μ± νκ° λ°©λ²
- μ΅μ κ²½μ°: κ°μ₯ μ΄μμ μΈ μν©μμμ μ±λ₯μ λλ€.
- μ΅μ κ²½μ°: κ°μ₯ λΉν¨μ¨μ μΈ μν©μμμ μ±λ₯μ λλ€.
- νκ· κ²½μ°: μΌλ°μ μΈ μν©μμμ μ±λ₯μ λλ€.
04. μκ³ λ¦¬μ¦ μ±λ₯ κ°μ λ°©λ²π οΈ
μ΅μ ν κΈ°λ²
μκ³ λ¦¬μ¦μ μ±λ₯μ λμ΄κΈ° μν΄ μ¬λ¬ μ΅μ ν κΈ°λ²μ μ¬μ©ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, λΆνμν μ°μ°μ μ€μ΄κ±°λ λ°μ΄ν° ꡬ쑰λ₯Ό ν¨μ¨μ μΌλ‘ λ³κ²½νλ λ°©λ² λ±μ΄ μμ΅λλ€.
λ°μ΄ν° ꡬ쑰μ μ ν
μ μ ν λ°μ΄ν° ꡬ쑰λ₯Ό μ ννλ κ²μ μκ³ λ¦¬μ¦μ μ±λ₯μ ν° μν₯μ λ―ΈμΉ©λλ€. μλ₯Ό λ€μ΄, λ°°μ΄ λμ μ°κ²° 리μ€νΈλ₯Ό μ¬μ©νλ©΄ νΉμ μμ μμ μ±λ₯μ΄ κ°μ λ μ μμ΅λλ€.
μ½λ μ΅μ ν
μκ³ λ¦¬μ¦μ ꡬνν λ μ½λλ₯Ό μ΅μ ννλ κ²λ μ€μν λΆλΆμ λλ€. μ½λμ μ€λ³΅μ μ€μ΄κ³ , ν¨μ¨μ μΈ μ°μ°μ μ¬μ©νμ¬ μ±λ₯μ ν₯μν μ μμ΅λλ€.