Both greedy and DP solve optimization problems with optimal substructure. The difference: Greedy: Make one choice per step, never look back. Fast but only works when greedy choice property holds. DP: Try all choices, combine results. Slower but always correct if subproblems overlap.
Rule of thumb: try greedy first. If you can prove the greedy choice property, you are done. If you find a counterexample, switch to DP. Common mistake: assuming greedy will work just because the problem asks for "maximum" or "minimum". Without the greedy choice property, you will get wrong answers.