[알고리즘 개념] DP(Dynamic Programming), 대체 뭘까
·
Algorithm
오랜만에 알고리즘 공부를 다시 시작하고 있다.그런데... 다 잊었다! 다시 복습해보자! 1. 동적 계획법(Dynamic Programming, DP)란? 큰 문제를 작은 문제로 나누어 푸는 방식이다.문제를 풀기 위해 작은 문제의 결과를 저장해두고, 같은 문제를 다시 풀 필요가 없도록 한다. 동적 계획법은 보통 재귀적 문제 해결에서 사용되는데, 단순히 재귀만 사용하는 것보다 훨씬 효율적이다.재귀는 큰 문제를 풀기위해 동일한 작은 문제를 반복해서 호출하는 방식인데,DP는 이미 계산한 값은 저장해두고 재사용하므로, 동일한 계산을 반복하지 않는다. 2. 왜 동적 계획법을 사용할까? 일반적인 재귀방식은 같은 계산을 여러 번 반복하여 비효율적이다.예를 들어, 피보나치 수열을 재귀로 계산할 때, fibonacci(..