Dynamic Programming
Dynamic Programming adalah metode pengoptimalan masalah matematika atau pemrograman dengan memecahnya menjadi sub-masalah yang lebih sederhana dan menyimpan hasil dari setiap sub-masalah (biasanya dalam array atau tabel) agar tidak perlu dihitung ulang.
Konteks Penggunaan
Menyelesaikan masalah optimasi kompleks seperti rute terpendek atau alokasi sumber daya.
Contoh
Menghitung deret Fibonacci. Tanpa DP, kita hitung fib(5) berulang kali. Dengan DP, kita simpan nilai fib(5) sekali, lalu pakai ulang nilai itu.
Catatan
Kunci: Overlapping Subproblems & Optimal Substructure.
