Method used in computer science and mathematics to solve complex problems by breaking them down into simpler subproblems and solving each of these subproblems just once, storing their solutions.
Generality: 830