## Question:

What is dynamic programming?

Dynamic programming is

NOTdynamic typing

- What are its characteristics?
- What are its advantages and disadvantages?

## Answer:

When you start working with more than one system, you can run into a series of conflicts due to the use of recursive algorithms, which re-examine the same problem many times, and in this situation, generating new conflicts and bugs.

To solve these problems, there is **dynamic programming** , which is a methodology for constructing algorithms that solve original system problems, in a way that optimizes and makes use of combinatorial analysis, in order to prevent performance drop and unnecessary recalculations to serve subsystems that may overwhelm the original system, generating new sub-problems.

That is, when you start programming, the ideal is to think about abstracting as much as possible so that no problems occur in the future, this is dynamic thinking.