
[Python] 동적 계획법 (Dynamic Programming)
·
Develop/Python
1. DP (Dynamic Programming) 란?복잡한 문제를 여러 개의 작은 부분 문제 (Sub-Problem)로 나누어 해결하는 방법 !(작은 문제에서 구한 답을 다시 그것을 포함하는 큰 문제에서 사용)한번 계산한 문제는 다시 계산하지 않도록 하는 방법 ! 대표적인 예시로 피보나치 수열이 있습니다.피보나치 수열은 N번째의 값 = N-1 번째의 값 + N-2 번째의 값을 계산하는 수열입니다.위 그림처럼 분할하여 답을 구하는데, 중간에 중복 호출이 발생하기 떄문에 Memoization 기법을 사용합니다. Memoization 이란?프로그래밍 할 때, 반복되는 결과를 메모리에 저장하여 중복호출 되었을 때, 한 번 더 계산하지 않고 메모리에 저장되어 있는 것을 가져와서 재활용 하는 기법 입니다.장점으로..