advent-of-code/2024-python/output
Anders Englöf Ytterström 14520a4625 Solve 2024:17 p1-2 "Chronospatial Computer"
Slow burner.

First part was a straightforward implementation
of a runner, the code is extracted to `org_version()`.

Part 2 was way more tricky. Like many others, trying
to understand the program felt necessary. This
intepretation is this:

    """Python version of puzzle input program."""
    a = <unknown>
    b, c = 0, 0
    while a:
        b = (a % 8) ^ 1
        c = a // (2**b)
        b = (b ^ 5) ^ c
        a = a // (2**3)
        print(b % 8)

Some clarification here:

- the value is octagonal. 1-8 is the key.
- The value of reg a is _high_. It is not meant to
be brute forced.

The idea, which is not originally mine, is to go
from right to left. This code can be used to try
out some patterns:

    while True:
        python_version(input("Provide A:"))

Here, it was apparent a=4 gives the last digit of
my puzzle input. a=37 (4 * 8 + 3) gives the last
2 digits. a=222 (37 * 8 + 6) gives the last 3
digits, and so on.

Knowing the program could be reconstructed like
this, the first code halted at wrong values. Turns
out some steps give more than 1 possible scenario.

The code was therefore in need of a queue.
2025-01-05 00:06:18 +01:00
..
__init__.py Solve 2024:16 pt1 "Reindeer Maze" 2025-01-05 00:06:18 +01:00
day_01.py Solve 2024:1 p1-2 "Historian Hysteria" 2025-01-05 00:06:18 +01:00
day_02.py Solve 2024:2 p1-2 "Red-Nosed Reports" 2025-01-05 00:06:18 +01:00
day_03.py Solve 2024:3 p1-2 "Mull It Over" 2025-01-05 00:06:18 +01:00
day_04.py Solve 2024:4 p1-2 "Ceres Search" 2025-01-05 00:06:18 +01:00
day_05.py Solve 2024:5 p1-2 "Print Queue" 2025-01-05 00:06:18 +01:00
day_06.py Solve 2024:6 p1-2 "Guard Gallivant" 2025-01-05 00:06:18 +01:00
day_07.py Solve 2024:7 p1-2 "Bridge Repair" 2025-01-05 00:06:18 +01:00
day_08.py Solve 2024:8 p1-2 "Resonant Collinearity" 2025-01-05 00:06:18 +01:00
day_09.py Solve 2024:9 p1-2 "Disk Fragmenter" 2025-01-05 00:06:18 +01:00
day_10.py Solve 2024:10 p1-2 "Hoof It" 2025-01-05 00:06:18 +01:00
day_11.py Solve 2024:11 p1-2 "Plutonian Pebbles" 2025-01-05 00:06:18 +01:00
day_12.py Solve 2024:12 p2 "Garden Groups" 2025-01-05 00:06:18 +01:00
day_13.py Solve 2024:13 p1-2 "Claw Contraption" 2025-01-05 00:06:18 +01:00
day_14.py Solve 2024:14 p1-2 "Restroom Redoubt" 2025-01-05 00:06:18 +01:00
day_15.py Refactor 2024:15 2025-01-05 00:06:18 +01:00
day_16.py Solve 2024:16 pt2 "Reindeer Maze" 2025-01-05 00:06:18 +01:00
day_17.py Solve 2024:17 p1-2 "Chronospatial Computer" 2025-01-05 00:06:18 +01:00
day_18.py Solve 2024:18 p1-2 "RAM Run" 2025-01-05 00:06:18 +01:00
day_19.py Solve 2024:19 p1-2 "Linen Layout" 2025-01-05 00:06:18 +01:00