Starting to solve the ZigZag problem.
Test-driven development: defining unit tests before implementation.
Solving ZigZag problem using dynamic programming.