If your goal is to be able to figure out and write down an algorithm to solve a problem you haven't seen before, you will want to get lots of practice doing exactly that. The problems you listed provide great examples of how to break a problem down into sub-problems, and by working through them, you'll see that certain patterns in sub-problems tend to show up all over the place in different problems. You learn general problem-solving methods.
Then, when you need an algorithm to analyze an audio signal for the DSP course in a couple years, or whatever, it will hopefully occur to you to break your signal up into subsignals and go about solving it that way.