Dynamic programming adalah teknik dalam algoritma yang di gunakan untuk menyelesaikan
masalah dengan memecahnya menjadi submasalah yang lebih kecil, menyelesaikan submasalah secara
terpisah, dan menggabungkan solusi submasalah tersebut untuk mendapatkan solusi akhir.