- 재귀와 DP의 차이
- 재귀는 하향식 접근
 - DP는 상향식 접근, 계산 결과를 저장하는 memoization 사용
 
 - DP 사용
- 문제의 최적 결과를 낼 때
 - 동일한 작은 문제들이 반복하여 나타나는 경우
 - 작은 문제를 풀고 memoization 하면서 전체 문제 해결
 
 
class DP {
    public int solution(int[] arr) {
        int len = arr.length;
        if(len == 0) {
            return 0;
        } else if (len == 1) {
            return arr[0];
        }
        int[] answer = new int[len];
        
        answer[0] = arr[0];
        answer[1] = Math.max(arr[0], arr[1]);
        for(int i = 2; i < len; i++) {
            answer[i] = Math.max(answer[i - 1], answer[i - 2] + arr[i]);
        }
        return answer[len - 1];
    }
}728x90
    
    
  'Computer Science > Algorithm' 카테고리의 다른 글
| [Algorithm] 재귀 (0) | 2025.02.13 | 
|---|