Break down question, explain desired algorithm Start with an example and go through edge cases Write psuedocode with base cases Fix bugs Talk about time and space complexity