Day 14 solution

This one's part 1 destroyed me. I had a very difficult time, trying 3 separate approaches, each one of which worked for most cases but eventually fell apart on the 5th sample or my actual puzzle input. I ended up tweaking and rewriting until I landed on this which wasn't far off from what I was trying to do previously, but I had been overcomplicating things.

Part 2 surprised me in that I expected a simple "ore available divided by ore needed for 1 fuel" would solve it, but of course the excess chemicals produced in any given reaction meant that it wasn't that simple. So this approach uses that estimate as a lower bound, since it always underestimates, and then bisects its way to the solution (starting at the lower bound and adding 1 each time took too long). I'm sure a smarter upper bound choice could lower the runtime of this by a bit, but runtime isn't bad enough right now for me to try any additional optimizations.
This commit is contained in:
2022-06-28 08:32:59 -05:00
parent dd5ea5ea86
commit 4cde56eb84
10 changed files with 269 additions and 0 deletions

View File

@ -44,6 +44,7 @@ var dayMap = []day{
&days.Day11{},
&days.Day12{},
&days.Day13{},
&days.Day14{},
}
func main() {