Search

다이나믹 프로그래밍

다이나믹 프로그래밍 (Dynamic Programming)

메모리를 더 사용하여 연산 속도를 비약적으로 증가시키는 프로그래밍 기법
피보나치 함수 소스코드
피보나치 수열의 점화식을 재귀 함수로 구현하면, 수행시간이 매우 길어진다.
다이나믹 프로그래밍을 사용하여 효율적으로 해결
다이나믹 프로그래밍을 사용할 수 있는 조건
1.
큰 문제를 작은 문제로 나눌 수 있다.
2.
작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일하다.

메모이제이션 (Memoization) 기법

다이나믹 프로그래밍을 구현하는 방법 중 한 종류
한 번 구한 결과를 메모리 공간에 메모해두고 같은 식을 다시 호출하면 메모한 결과를 그대로 가져오는 기법을 의미
피보나치 수열 소스코드(재귀적)
피보나치 수열 소스코드(반복적)
가능한 재귀 함수를 이용하는 탑다운 보다는 보텀업(반복문) 방식으로 구현하자!
시스템상 재귀함수의 스택 크기가 한정되어 있을 수 있기 때문

나동빈님 컨텐츠를 이용하시면 더 많고 자세한 내용을 얻을 수 있습니다.