Dynamic Programming (동적 계획법)

다이나믹 프로그래밍 방법론

상향식(Bottom-Up)

def fib(n):
		dp[0] = 0
		dp[1] = 1

		for i in range(2, n+1):
				dp[i] = dp[i-1] + dp[i-2]
		return dp[n]

하향식(Top-Down)

def fib(n):
		if n <= 1:
				return n

		if dp[n]:
				return dp[n]
		dp[n] = fib(n-1) + fib(n-2)
		return dp[n]