Great end to the puzzles! I had a lot of fun. Dynamic programming is a powerful tool for puzzle solving. I've used it a work and seen people go crazy at how a few lines of code can solve very complex problems. I spent some time figuring out how to use the cached crate on a mutable object to speed things up a bit.
Wikipedia: https://en.wikipedia.org/wiki/Dynamic_programming
Cached Crate: https://docs.rs/cached/latest/cached/
Problem: https://flipflop.slome.org/2025/7
Solution: https://gist.github.com/icub3d/1ebb615a7cdc7838859e10dbb19d3e80
0:00 Introduction
0:57 Part 1
12:37 Part 2
16:52 Part 3
34:05 Conclusion