1. κ°μ
μ΄ κΈμ int λ°°μ΄μμ μ΅λκ°κ³Ό μ΅μκ°μ ꡬνλ λ°©λ²μ λν΄ μ€λͺ ν©λλ€. μ΅λκ°κ³Ό μ΅μκ°μ μ£Όμ΄μ§ λ°μ΄ν° μ€μμ κ°μ₯ ν° κ°κ³Ό μμ κ°μ μ°Ύλ μ€μν μμ μ λλ€. μ΄ κΈμμλ μ΅λκ°κ³Ό μ΅μκ°μ κ°κ° ꡬνλ λ°©λ²λΏλ§ μλλΌ, λ κ°μ λμμ ꡬνλ λ°©λ²μ λν΄μλ λ€λ£Ήλλ€. μ΄λ₯Ό ν΅ν΄ νλ‘κ·Έλλ°μμ μμ£Ό μ¬μ©λλ μ΄ κΈ°λ₯μ λν΄ μ μ΄ν΄ν μ μμ κ²μ λλ€. λ€μμΌλ‘, μ΅λκ°κ³Ό μ΅μκ°μ ꡬνλ κ°μ₯ ν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ λν μμμ ν¨κ» μμΈν μ€λͺ ν©λλ€. κΈμ λ§μΉλ©΄, int λ°°μ΄μμ μ΅λκ°κ³Ό μ΅μκ°μ μ½κ² ꡬν μ μμ κ²μ λλ€. ν΄λΉ κΈμμλ μμΈν μμμ ν¨κ» μκ³ λ¦¬μ¦μ μ€λͺ ν©λλ€. λ°λΌμ μ΄ κΈμ ν΅ν΄ μ΅λκ°κ³Ό μ΅μκ°μ ꡬνλ λ°©λ²μ ν¨μ¨μ μΌλ‘ μ΅ν μ μμ΅λλ€.
2. μ΅λκ° κ΅¬νκΈ°
μ£Όμ΄μ§ int λ°°μ΄μμ μ΅λκ°μ ꡬνλ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€. μ ν νμμ μ¬μ©νμ¬ λ°°μ΄μ λͺ¨λ μμλ₯Ό μννλ©΄μ νμ¬κΉμ§μ μ΅λκ°κ³Ό λΉκ΅νλ©΄ λ©λλ€.
- λ°°μ΄μ 첫 λ²μ§Έ μμλ₯Ό μ΅λκ°μΌλ‘ μ΄κΈ°νν©λλ€.
- λ°°μ΄μ μννλ©° λ°°μ΄μ κ° μμλ₯Ό νμ¬κΉμ§μ μ΅λκ°κ³Ό λΉκ΅ν©λλ€.
- νμ¬ μμκ° μ΅λκ°λ³΄λ€ ν¬λ€λ©΄ μ΅λκ°μ νμ¬ μμλ‘ μ λ°μ΄νΈν©λλ€.
- λͺ¨λ λ°°μ΄ μμλ₯Ό νμΈν ν μ΅λκ°μ λ°νν©λλ€.
μλμ μμ μ½λλ μ΄ μκ³ λ¦¬μ¦μ ꡬνν κ²μ λλ€.
def find_max(arr):
max_val = arr[0] # 첫 λ²μ§Έ μμλ‘ μ΄κΈ°ν
for i in range(1, len(arr)):
if arr[i] > max_val:
max_val = arr[i]
return max_val
μμ μ½λλ₯Ό κ°λ¨ν μ€λͺ νμλ©΄, λ°°μ΄μ 첫 λ²μ§Έ μμλ₯Ό μ΅λκ°μΌλ‘ μ€μ νκ³ , λ°°μ΄μ μννλ©° νμ¬κΉμ§μ μ΅λκ°κ³Ό λΉκ΅νμ¬ λ ν° κ°μ μ΅λκ°μΌλ‘ μ λ°μ΄νΈνλ κ²μ λλ€. λ°°μ΄μ ν¬κΈ°μ λΉλ‘νλ μκ°μ΄ 걸리기 λλ¬Έμ μ ν μκ° λ³΅μ‘λ O(n)μ κ°μ§λλ€.
μ΄μ μ£Όμ΄μ§ int λ°°μ΄μμ μ΅λκ°μ ꡬνλ λ°©λ²μ μμμ΅λλ€. λ€μμΌλ‘ μ΅μκ°μ ꡬνλ λ°©λ²μ μμλ³΄κ² μ΅λλ€.
3. μ΅μκ° κ΅¬νκΈ°
μ£Όμ΄μ§ int λ°°μ΄μμ μ΅μκ°μ ꡬνλ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€. μ΅λκ°μ ꡬνλ λ°©λ²κ³Ό μ μ¬νκ² λ°°μ΄μ λͺ¨λ μμλ₯Ό μννλ©΄μ νμ¬κΉμ§μ μ΅μκ°κ³Ό λΉκ΅νλ©΄ λ©λλ€.
- λ°°μ΄μ 첫 λ²μ§Έ μμλ₯Ό μ΅μκ°μΌλ‘ μ΄κΈ°νν©λλ€.
- λ°°μ΄μ μννλ©° λ°°μ΄μ κ° μμλ₯Ό νμ¬κΉμ§μ μ΅μκ°κ³Ό λΉκ΅ν©λλ€.
- νμ¬ μμκ° μ΅μκ°λ³΄λ€ μλ€λ©΄ μ΅μκ°μ νμ¬ μμλ‘ μ λ°μ΄νΈν©λλ€.
- λͺ¨λ λ°°μ΄ μμλ₯Ό νμΈν ν μ΅μκ°μ λ°νν©λλ€.
μλμ μμ μ½λλ μ΄ μκ³ λ¦¬μ¦μ ꡬνν κ²μ λλ€.
def find_min(arr):
min_val = arr[0] # 첫 λ²μ§Έ μμλ‘ μ΄κΈ°ν
for i in range(1, len(arr)):
if arr[i] < min_val:
min_val = arr[i]
return min_val
μμ μ½λλ₯Ό κ°λ¨ν μ€λͺ νμλ©΄, λ°°μ΄μ 첫 λ²μ§Έ μμλ₯Ό μ΅μκ°μΌλ‘ μ€μ νκ³ , λ°°μ΄μ μννλ©° νμ¬κΉμ§μ μ΅μκ°κ³Ό λΉκ΅νμ¬ λ μμ κ°μ μ΅μκ°μΌλ‘ μ λ°μ΄νΈνλ κ²μ λλ€. μ΅λκ° κ΅¬νκΈ°μ λ§μ°¬κ°μ§λ‘ μ ν μκ° λ³΅μ‘λ O(n)μ κ°μ§λλ€.
μ΄μ μ£Όμ΄μ§ int λ°°μ΄μμ μ΅μκ°μ ꡬνλ λ°©λ²λ μμμ΅λλ€. λ§μ§λ§μΌλ‘ μ΅λκ°κ³Ό μ΅μκ°μ λμμ ꡬνλ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€.
4. μ΅λκ°κ³Ό μ΅μκ° λμμ ꡬνκΈ°
μ£Όμ΄μ§ int λ°°μ΄μμ μ΅λκ°κ³Ό μ΅μκ°μ λμμ ꡬνλ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€. μ΄ μκ³ λ¦¬μ¦μ λ°°μ΄μ ν λ²λ§ μννλ©΄μ λμμ μ΅λκ°κ³Ό μ΅μκ°μ ꡬν μ μμ΅λλ€.
- λ°°μ΄μ 첫 λ²μ§Έ μμλ₯Ό λμμ μ΅λκ°κ³Ό μ΅μκ°μΌλ‘ μ΄κΈ°νν©λλ€.
- λ°°μ΄μ μννλ©° λ°°μ΄μ κ° μμλ₯Ό νμ¬κΉμ§μ μ΅λκ°κ³Ό μ΅μκ°κ³Ό λΉκ΅ν©λλ€.
- νμ¬ μμκ° μ΅λκ°λ³΄λ€ ν¬λ€λ©΄ μ΅λκ°μ νμ¬ μμλ‘ μ λ°μ΄νΈνκ³ , νμ¬ μμκ° μ΅μκ°λ³΄λ€ μλ€λ©΄ μ΅μκ°μ νμ¬ μμλ‘ μ λ°μ΄νΈν©λλ€.
- λͺ¨λ λ°°μ΄ μμλ₯Ό νμΈν ν μ΅λκ°κ³Ό μ΅μκ°μ λ°νν©λλ€.
μλμ μμ μ½λλ μ΄ μκ³ λ¦¬μ¦μ ꡬνν κ²μ λλ€.
def find_max_min(arr):
max_val = arr[0] # 첫 λ²μ§Έ μμλ‘ μ΅λκ° μ΄κΈ°ν
min_val = arr[0] # 첫 λ²μ§Έ μμλ‘ μ΅μκ° μ΄κΈ°ν
for i in range(1, len(arr)):
if arr[i] > max_val:
max_val = arr[i]
elif arr[i] < min_val:
min_val = arr[i]
return max_val, min_val
μμ μ½λλ₯Ό κ°λ¨ν μ€λͺ νμλ©΄, λ°°μ΄μ 첫 λ²μ§Έ μμλ₯Ό λμμ μ΅λκ°κ³Ό μ΅μκ°μΌλ‘ μ€μ νκ³ , λ°°μ΄μ μννλ©° νμ¬κΉμ§μ μ΅λκ°κ³Ό μ΅μκ°κ³Ό λΉκ΅νμ¬ λ ν° κ°μ μ΅λκ°μΌλ‘, λ μμ κ°μ μ΅μκ°μΌλ‘ μ λ°μ΄νΈνλ κ²μ λλ€. λ°°μ΄μ ν¬κΈ°μ λΉλ‘νλ μκ°μ΄ 걸리기 λλ¬Έμ μ ν μκ° λ³΅μ‘λ O(n)μ κ°μ§λλ€.
μ΄μ μ£Όμ΄μ§ int λ°°μ΄μμ μ΅λκ°κ³Ό μ΅μκ°μ λμμ ꡬνλ λ°©λ²λ μμμ΅λλ€. μ΄λ¬ν μκ³ λ¦¬μ¦μ μ¬μ©νλ©΄ λ°°μ΄μ ν λ²λ§ μννλ©΄μ λ κ°μ κ²°κ³Όλ₯Ό λμμ ꡬν μ μμΌλ―λ‘ ν¨μ¨μ μ λλ€.
5. μμμ ν¨κ» μκ³ λ¦¬μ¦ μ€λͺ
μλμ μμλ₯Ό ν΅ν΄ μ΅μκ°κ³Ό μ΅λκ°μ λμμ ꡬνλ μκ³ λ¦¬μ¦μ μ΄ν΄λ³΄κ² μ΅λλ€. μ£Όμ΄μ§ int λ°°μ΄μ΄ [4, 8, 2, 6, 1]μΈ κ²½μ°λ₯Ό κ°μ ν΄λ΄ μλ€.
- λ°°μ΄μ 첫 λ²μ§Έ μμμΈ 4λ₯Ό λμμ μ΅λκ°κ³Ό μ΅μκ°μΌλ‘ μ΄κΈ°νν©λλ€.
- λ λ²μ§Έ μμμΈ 8μ νμ¬κΉμ§μ μ΅λκ° 4μ λΉκ΅ν©λλ€. 8μ 4λ³΄λ€ ν¬λ―λ‘ μ΅λκ°μ 8λ‘ μ λ°μ΄νΈν©λλ€. λμμ μ΅μκ°κ³Ό λΉκ΅νλλΌλ 8μ΄ 4λ³΄λ€ ν¬λ―λ‘ μ΅μκ°μ κ·Έλλ‘ 4μ λλ€.
- μΈ λ²μ§Έ μμμΈ 2λ₯Ό νμ¬κΉμ§μ μ΅λκ° 8κ³Ό λΉκ΅ν©λλ€. 2λ 8λ³΄λ€ μμΌλ―λ‘ μ΅λκ°μ κ·Έλλ‘ 8μ΄κ³ , μ΅μκ°μ 2λ‘ μ λ°μ΄νΈλ©λλ€.
- λ€ λ²μ§Έ μμμΈ 6μ νμ¬κΉμ§μ μ΅λκ° 8κ³Ό μ΅μκ° 2μ λΉκ΅ν©λλ€. 6μ 8λ³΄λ€ μμΌλ―λ‘ μ΅λκ°μ κ·Έλλ‘ 8μ΄κ³ , 6μ 2λ³΄λ€ ν¬λ―λ‘ μ΅μκ°μ κ·Έλλ‘ 2μ λλ€.
- λ§μ§λ§ μμμΈ 1μ νμ¬κΉμ§μ μ΅λκ° 8κ³Ό μ΅μκ° 2μ λΉκ΅ν©λλ€. 1μ 8λ³΄λ€ μμΌλ―λ‘ μ΅λκ°μ κ·Έλλ‘ 8μ΄κ³ , 1μ 2λ³΄λ€ μμΌλ―λ‘ μ΅μκ°μ 1λ‘ μ λ°μ΄νΈν©λλ€.
- λ°°μ΄μ λͺ¨λ μμλ₯Ό νμΈν ν μ΅λκ° 8μ μ΅μκ° 1μ λ°νν©λλ€.
μμ μμλ₯Ό ν΅ν΄ μ΅μκ°κ³Ό μ΅λκ°μ λμμ ꡬνλ μκ³ λ¦¬μ¦μ μ΄ν΄ν μ μμ΅λλ€. μ΄ μκ³ λ¦¬μ¦μ λ°°μ΄μ ν λ²λ§ μννλ©΄μ λμμ μ΅λκ°κ³Ό μ΅μκ°μ ꡬνκΈ° λλ¬Έμ ν¨μ¨μ μ λλ€. μ ν μκ° λ³΅μ‘λ O(n)μ κ°μ§λ©°, μ£Όμ΄μ§ λ°°μ΄μ ν¬κΈ°μ λΉλ‘νλ μκ°μ΄ 걸립λλ€.
λκΈ