I [found this problem online](http://symbo1ics.com/blog/?p=2055), but cannot really find a good way to solve it nicely:

*Given a set of Lego bricks of height 1, 2, 3, and 4, each colored differently, write a program to compute the number of ways of constructing a tower of height n ≥ 1.*

It seems this can be solved with Dynamic Programming, but I am quite inexperienced in this.  

Any ideas for a solution to this problem?