Greedy makes the best local choice at each step and never revisits it; it works only when the problem has the greedy-choice property. DP solves overlapping subproblems and reuses results (memoization/tabulation) to guarantee optimality.