- A LCM puzzle?
- What better way than to just try counting up?
LCM: Least Common Multiple
- The smallest number shared by several numbers as that which they evenly divide by
3,5 = 15
2,5 = 10
In this case, the numbers may be some combination of the time passed, the total positions, and the current position of each disc.
Create a variable, answer Create a counter, starting at 0 Do as long as answer has no value Determine whether each disc would be at position 0 when reached If so Set answer to counter Else Increment counter
What is the equation I'll use to determine whether a disc is at position 0?
(time + disc number + position) % positions == 0
So, as long as each disc's equation becomes 0 for a time, then I found a winning time!
This algorithm seems easy enough to write.
Here I go!
- If I am reading this correctly, I just need to alter my puzzle input so it includes an extra disc
- Then run my algorithm again...hoping that this extra disc doesn't cause the first time to press the button to become a number in the billions or trillions
After adding this line to my puzzle input:
Disc #7 has 11 positions; at time=0, it is at position 0.
And running my algorithm again...
It almost immediately generated a number.
It is the correct answer!
- I solved both parts!
- Way faster - and with far less code and confusion - than I expected!
- Perhaps because I deduced the equation so quickly!
I'm delighted that this Day 15 puzzle took me under 15 minutes to solve both parts!
Though, given the effort required of me to solve the last few puzzles, I'm a bit bummed that I probably won't remember this one among after moving on.