다이나믹 프로그래밍 (Dynamic Programming) : DP 개념 : 문제를 더 작은 단위로 쪼개어 해결하는 알고리즘. (분할 정복 알고리즘과 비슷하다. 차이점은 바로 아랫줄.) 핵심은, 그 작은 단위의 문제들이 반복해서 일어나기 때문에, 그값들을 저장해놓는 식으로 해결해나가는 알고리즘 (다이나믹이라는 이름에는 아무 뜻도 없다고 한다.) *다이나믹 프로그래밍을 사용하기 위한 조건 1. 부분 문제들이 겹치는가 (반복 되는가) ex ) 피보나치 수 : N번째 항(큰 문제) = N-1번째 항(작은 문제) + N-2 번째 항(작은 문제) 피보나치의 특성을 잘 살펴보면 Fibo(10)을 구할때는 Fibo(9)+Fibo(8)...........Fibo(1) 까지 모두 필요합니다. 이때 메모이제이션을 통해 배..
알고리즘 - 다이나믹 프로그래밍 (Dynamic Programming)
다이나믹 프로그래밍 (Dynamic Programming) : DP 개념 : 문제를 더 작은 단위로 쪼개어 해결하는 알고리즘. (분할 정복 알고리즘과 비슷하다. 차이점은 바로 아랫줄.) 핵심은, 그 작은 단위의 문제들이 반복해서 일어나기 때문에, 그값들을 저장해놓는 식으로 해결해나가는 알고리즘 (다이나믹이라는 이름에는 아무 뜻도 없다고 한다.) *다이나믹 프로그래밍을 사용하기 위한 조건 1. 부분 문제들이 겹치는가 (반복 되는가) ex ) 피보나치 수 : N번째 항(큰 문제) = N-1번째 항(작은 문제) + N-2 번째 항(작은 문제) 피보나치의 특성을 잘 살펴보면 Fibo(10)을 구할때는 Fibo(9)+Fibo(8)...........Fibo(1) 까지 모두 필요합니다. 이때 메모이제이션을 통해 배..
2020.04.23