Tech/Data Structure & Algorithm
π μ¬κ·ν¨μ
λ°€μ§
2022. 11. 9. 20:25
π μ¬κ·ν¨μλ?
μ¬κ·ν¨μλ, μ΄λ€ ν¨μμμ μμ μ λ€μ νΈμΆνμ¬ μμ
μ μννλ λ°©μμ ν¨μλ₯Ό μλ―Έν©λλ€.
λ€λ₯Έ λ§λ‘λ μ¬κ·νΈμΆ, λλΆλ¦μ΄λΌκ³ λΆλ¦¬κΈ°λ νλ©°, μ¬κ· ν¨μλ₯Ό μμ±ν λλ ν¨μ λ΄μμ λ€μ μμ μ νΈμΆν ν κ·Έ ν¨μκ° λλ λκΉμ§ ν¨μ νΈμΆ μ΄νμ λͺ
λ Ήλ¬Έμ΄ μνλμ§ μλλ€λ μ¬μ€κ³Ό μ’
λ£ μ‘°κ±΄μ΄ κΌ ν¬ν¨λμ΄μΌ ν©λλ€.
π μμλ¬Έμ
# data = [3, 5, 8] μ±λΆλ€μ ν©μΌλ‘ ννν μ μλ μ«μμ κ²½μ°μ μλ?
# λ°λ³΅λ¬Έμ νμ©ν μμ νμ
data = [3, 5, 8]
result = set()
for i in range(2):
for j in range(2):
for k in range(2):
result.add(data[0] * i + data[1] * j + data[2] * k)
print(result)
# (0, 3, 5, 8, 11, 13, 16)
# λ°μ΄ν°κ° λ§μμ§λ©΄ μ΄λ ΅κΈ°μ μ¬κ·ν¨μλ₯Ό μ¬μ©ν¨
data = [3, 5, 8]
def recur(index,value):
if index == len(data):
result.add(value)
else:
recur(index + 1, value + data[index])
recur(index + 1, value)
result = set()
recur(0,0)
print(result)
#(0, 3, 5, 8, 11, 13, 16)
#λ°°μ΄μ κΈΈμ΄κ° κΈΈμ΄μ§λ€ νλλΌλ μμ μμ΄ λ¬Έμ ν΄κ²° κ°λ₯
π μ¬κ·ν¨μ νμ©
- νν 리μΌ(!)
def factorial(n): if n == 1: return 1 else: return n * factorial(n-1)
- νΌλ³΄λμΉ μμ΄
π μ¬κ·ν¨μ κΉμ΄def fibonacci(n): if n == 0 or n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2)