Add problem 35
Add tests
Update tests
Reduce time by memoization