μκ³ λ¦¬μ¦μ 무μμΌκΉ?
μ리λ₯Ό λ§λ€λ νΉμ ν μμμ λ°©λ²μ λ°λΌμΌ λ§μλ μ리λ₯Ό λ§λ€ μ μλ κ²μ²λΌ, νλ‘κ·Έλ¨μΌλ‘ 볡μ‘ν λ¬Έμ λ₯Ό ν΄κ²°νλ €λ©΄ λͺ νν μ μ°¨μ κ·μΉμ΄ νμν©λλ€.
μκ³ λ¦¬μ¦
μ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν λ¨κ³μ μΈ μ μ°¨λ₯Ό λ»νλ©°, μ리μ λ μνΌμ κ°μ΅λλ€.
νλ‘κ·Έλλ°μμ μκ³ λ¦¬μ¦μ΄ μ€μν μ΄μ
μκ³ λ¦¬μ¦μ νλ‘κ·Έλ¨μ ν¨μ¨μ±
κ³Ό μ νμ±
μ κ²°μ μ§λ μ€μν μμμ
λλ€.
μ΄λ€ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ λ€μν λ°©λ²λ€μ΄ μ‘΄μ¬ν μ μμ΅λλ€.
μκ³ λ¦¬μ¦μ ν΅μ¬μ μ¬λ¬ κ°μ§ ν΄κ²° λ°©λ² μ€μμ λ λΉ λ₯΄κ³ , λ μ μ μμμ μ¬μ©νλ μ΅μ μ λ°©λ²μ μ°Ύλ κ²μ λλ€.
μκ³ λ¦¬μ¦μ μ’ λ₯μ κ°λ¨ν μ½λ μμ
μκ³ λ¦¬μ¦μ κ·Έ λͺ©μ κ³Ό κΈ°λ₯μ λ°λΌ λ€μν μ’ λ₯λ‘ λλ©λλ€.
μ΄λ² μμ μμλ λνμ μΈ μκ³ λ¦¬μ¦ λͺ κ°μ§λ₯Ό μκ°νκ³ , κ°λ¨ν μ½λ μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
1. κ²μ(Search) μκ³ λ¦¬μ¦
κ²μ μκ³ λ¦¬μ¦μ λ°μ΄ν°μμ νΉμ κ°μ μ°Ύλ λ°©λ²μ λ§ν©λλ€.
κΈ°λ³Έμ μΈ μμλ‘ μ ν κ²μ(Linear Search)
μ΄ μμ΅λλ€.
def linear_search(arr, target): # 리μ€νΈμ κΈΈμ΄λ§νΌ λ°λ³΅ for i in range(len(arr)): # νκ² κ°κ³Ό μΌμΉνλ κ²½μ° if arr[i] == target: # ν΄λΉ μΈλ±μ€ λ°ν return i # μΌμΉνλ κ°μ΄ μλ κ²½μ° -1 λ°ν return -1 numbers = [3, 5, 2, 1, 10] result = linear_search(numbers, 5) print(result) # 5κ° μμΉν μΈλ±μ€ 1 μΆλ ₯
μ ν κ²μ μκ³ λ¦¬μ¦μ 리μ€νΈμ μ²μλΆν° λκΉμ§ μμ°¨μ μΌλ‘ νμνλ©°, νκ² κ°κ³Ό μΌμΉνλ κ°μ μ°ΎμΌλ©΄ ν΄λΉ μΈλ±μ€λ₯Ό λ°νν©λλ€.
2. μ λ ¬(Sorting) μκ³ λ¦¬μ¦
μ λ ¬ μκ³ λ¦¬μ¦μ λ°μ΄ν°λ₯Ό μΌμ ν μμλλ‘ μ 리νλ λ°©λ²μ λλ€.
κΈ°λ³Έμ μΈ μ λ ¬ μκ³ λ¦¬μ¦μΌλ‘ λ²λΈ μ λ ¬(Bubble Sort)
μ΄ μμ΅λλ€.
# λ²λΈ μ λ ¬ ν¨μ def bubble_sort(arr): # 리μ€νΈμ κΈΈμ΄ n = len(arr) # 리μ€νΈ κΈΈμ΄λ§νΌ λ°λ³΅ for i in range(n): # 리μ€νΈ κΈΈμ΄μμ iλ§νΌ λΊ λ²μκΉμ§ λ°λ³΅ for j in range(0, n-i-1): # νμ¬ μμκ° λ€μ μμλ³΄λ€ ν¬λ©΄ if arr[j] > arr[j+1]: # λ μμμ μμΉ λ³κ²½ arr[j], arr[j+1] = arr[j+1], arr[j] # μ λ ¬λ 리μ€νΈ λ°ν return arr # μ λ ¬ν 리μ€νΈ numbers = [64, 34, 25, 12, 22, 11, 90] # μ λ ¬λ 리μ€νΈ μΆλ ₯ print(bubble_sort(numbers))
λ²λΈ μ λ ¬ μκ³ λ¦¬μ¦μ μΈμ ν λ μμλ₯Ό λΉκ΅νμ¬ μ λ ¬νλ λ°©μμΌλ‘, 리μ€νΈμ κΈΈμ΄λ§νΌ λ°λ³΅νλ©΄μ μ λ ¬μ μνν©λλ€.
3. μ¬κ·(Recursion) μκ³ λ¦¬μ¦
μ¬κ· μκ³ λ¦¬μ¦μ λ¬Έμ λ₯Ό λ μμ λ¬Έμ λ‘ μͺΌκ°μ΄ ν΄κ²°νλ λ°©λ²μ λλ€.
λνμ μΌλ‘ νΌλ³΄λμΉ μμ΄
μ κ³μ°νλ λ°©λ²μ μ¬κ· μκ³ λ¦¬μ¦μ μ¬μ©ν©λλ€.
def fibonacci(n): # nμ΄ 1 μ΄νμΈ κ²½μ° if n <= 1: return n # nμ΄ 2 μ΄μμΈ κ²½μ° else: # n-1λ²μ§Έμ n-2λ²μ§Έ νΌλ³΄λμΉ μμ΄μ ν© λ°ν return fibonacci(n-1) + fibonacci(n-2) result = fibonacci(6) print(result) # 8 μΆλ ₯
μκ³ λ¦¬μ¦μ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν λ¨κ³μ μΈ μ μ°¨λ₯Ό λ»νλ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result