Calculate total coins using Dynamic programming boilerplate
Return minimum number of coins possible for a given totalSum (S)

* Use Dynamic Programming - Use overlapping subproblems to find solutions
to the next subproblem - starting from state 0.
Return null when sum is impossible - given the coins
Describe algorithm with comments