Divide the problem into a number of subproblems that are smaller instances of the same problem.

Conquer the subproblems by solving them recursively. If they are small enough, solve the subproblems as base case.

Combine the solutions to the subproblems into the solution for the original problem.