dynamic programming1 DP(다이나믹 프로그래밍) Dynamic Programming - 그리디 알고리즘과 같이, 최적화 문제를 해결하는 알고리즘이다. - 문제를 부분 문제로 분할한 후 가장 작은 부분 문제부터 해를 구하여 결과를 테이블에 저장하고, 테이블에 저장된 부분 문제의 해를 이용하여 상위 문제의 해를 구하는 알고리즘이다. 다음은 피보나치 함수를 DP로 구현한 예시이다. # 기록할 배열의 크기를 먼저 정해놓는 경우 def fibo1(n): arr = [0] * (n+1) arr[1] = 1 # 최초의 부분문제의 해를 배열에 기록 for i in range(2, n+1): arr[i] = arr[i-1] + arr[i-2] # 각 부분문제의 해를 구하여 저장 return arr[n] # 배열의 크기를 미리 정하지 않고 해결하는 경우 def fibo.. 2021. 9. 7. 이전 1 다음