Solutions for Advent of Code
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.
|
||
|---|---|---|
| 2015-elixir | ||
| 2015-elixir-2 | ||
| 2015-python | ||
| 2016-python | ||
| 2016-python2 | ||
| 2017-python | ||
| 2018-elixir | ||
| 2018-python | ||
| 2019-elixir | ||
| 2020-elixir | ||
| 2020-python | ||
| 2021-elixir | ||
| 2021-python | ||
| 2022-elixir | ||
| 2023-python | ||
| 2024-python | ||
| leaderboard | ||
| .gitignore | ||
| fetch-calendar | ||
| fetch-input | ||
| README.md | ||
Advent of Code 2015–
Here all solved puzzles for Advent of Code are kept for reference. Most solutions are written in Python, but there are also solutions written in Elixir.
- Initial runs from 2016–2020 are squashed in version control, so the original thoughts/rants about the solution are forgotten for future generations.
- 2021 onwards, each solution will have a separate commit. This also includes revisiting old events.
Where are the puzzle input files?
For many years, this repository had all puzzle inputs under version control. They are not anymore, although the scripts asumed they are downloaded and stored locally in a subdirectory, which is ignored by version control.
The reasons:
- Neither you or me do have permission to reproduce or redistribute them, they are not released under public domain or MIT/BSD/GPL or any other license.
- The author behind advent of code have kindly asked us who attend Advent of Code to not release them, since publiced puzzle inputs cen be used to copy the site and steal the AoC creator's work.
Sources: