My solutions in Kotlin
Legend: ★: Both stars for that day • ☆: Just the first star
Year |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 0 |
1 1 |
1 2 |
1 3 |
1 4 |
1 5 |
1 6 |
1 7 |
1 8 |
1 9 |
2 0 |
2 1 |
2 2 |
2 3 |
2 4 |
2 5 |
★ |
| 2015 |
★️ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
☆ |
★ |
|
|
|
|
|
39 |
| 2016 |
☆ |
☆ |
★ |
★ |
★ |
★ |
★ |
|
|
|
|
★ |
|
★ |
|
★ |
|
|
|
★ |
|
|
|
|
☆ |
21 |
| 2017 |
★ |
★ |
|
★ |
★ |
|
|
|
|
|
|
|
|
|
★ |
|
|
|
|
|
|
|
|
|
|
10 |
| 2018 |
★ |
★ |
★ |
|
★ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
| 2019 |
★ |
★ |
|
★ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
| 2020 |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
|
☆ |
☆ |
★ |
★ |
☆ |
★ |
☆ |
44 |
| 2021 |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
|
★ |
★ |
|
|
|
|
|
|
|
|
|
|
|
26 |
| 2022 |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
|
|
|
|
|
|
|
☆ |
|
|
|
☆ |
28 |
| 2023 |
★ |
★ |
★ |
★ |
☆ |
★ |
☆ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
| 2024 |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
|
☆ |
★ |
★ |
★ |
★ |
|
★ |
|
|
☆ |
40 |
| 2025 |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
★ |
☆ |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
23 |
Puzzles can be run using the Gradle run task or by executing the project's JAR file:
-
All available puzzles (all years and days):
./gradlew run or java -jar build/libs/AdventOfCode.jar
-
All puzzles for a given year:
./gradlew run --args 2020 or java -jar build/libs/AdventOfCode.jar 2020
-
A single puzzle for a given year and day:
./gradlew run --args 2020/25 or java -jar build/libs/AdventOfCode.jar 2020/25
These arguments can be combined to run multiple puzzles, e.g. ./gradlew run --args "2015/1 2019 2020/6 2020/7" or
java -jar build/libs/AdventOfCode.jar 2015/1 2019 2020/6 2020/7 will run the first puzzle from 2015, then all puzzles from 2019 and lastly
the 6th and 7th puzzle from 2020.
Runtimes that exceed 15s are highlighted in red.
This project contains a Dockerfile to build the project and run the puzzles:
-
To build the Docker image:
docker build -t pfolta/advent-of-code:latest .
-
To run all available puzzles (all years and days) in Docker (and remove the container afterwards):
docker run --rm pfolta/advent-of-code:latest
-
All puzzles for a given year:
docker run --rm pfolta/advent-of-code:latest 2020
-
A single puzzle for a given year and day:
docker run --rm pfolta/advent-of-code:latest 2020/25
And just as when running the JAR archive natively, these arguments can be combined to run multiple puzzles, e.g.
docker run --rm pfolta/advent-of-code:latest 2015/1 2019 2020/6 2020/7 will run the first puzzle from 2015, then all puzzles from 2019 and
lastly the 6th and 7th puzzle from 2020.
Legend: XXXX: Year (4 digits, e.g. 2020) • YY: Day (leading zero, e.g. 07) • ZZZZ: Puzzle name (UpperCamelCase,
e.g. HandyHaversacks)
- Inputs go into
src/main/resources/inputs and follow the naming convention yearXXXX/dayYY.txt
- Solutions go into
src/main/kotlin/adventofcode and follow the naming convention yearXXXX/DayYYZZZZ.kt
- Solutions extend the
Puzzle class and call its constructor passing an optional alternative input
- Solutions can have one or two parts sharing the same input. Not overriding
fun partTwo(): Any will skip the second part when running the
puzzle
| Year |
Day |
Puzzle |
Links |
⭐️ Part 1 |
⭐️ Part 2 |
| 2015 |
1 |
Not Quite Lisp |
[Code] [Test] |
232 |
1783 |
|
2 |
I Was Told There Would Be No Math |
[Code] [Test] |
1598415 |
3812909 |
|
3 |
Perfectly Spherical Houses in a Vacuum |
[Code] [Test] |
2565 |
2639 |
|
4 |
The Ideal Stocking Stuffer |
[Code] [Test] |
282749 |
9962624 |
|
5 |
Doesn't He Have Intern-Elves For This? |
[Code] [Test] |
238 |
69 |
|
6 |
Probably a Fire Hazard |
[Code] [Test] |
377891 |
14110788 |
|
7 |
Some Assembly Required |
[Code] |
16076 |
2797 |
|
8 |
Matchsticks |
[Code] [Test] |
1333 |
2046 |
|
9 |
All in a Single Night |
[Code] [Test] |
207 |
804 |
|
10 |
Elves Look, Elves Say |
[Code] |
492982 |
6989950 |
|
11 |
Corporate Policy |
[Code] [Test] |
vzbxxyzz |
vzcaabcc |
|
12 |
JSAbacusFramework.io |
[Code] [Test] |
111754 |
65402 |
|
13 |
Knights of the Dinner Table |
[Code] [Test] |
618 |
601 |
|
14 |
Reindeer Olympics |
[Code] |
2696 |
1084 |
|
15 |
Science for Hungry People |
[Code] [Test] |
21367368 |
1766400 |
|
16 |
Aunt Sue |
[Code] |
213 |
323 |
|
17 |
No Such Thing as Too Much |
[Code] [Test] |
1638 |
17 |
|
18 |
Like a GIF For Your Yard |
[Code] |
768 |
781 |
|
19 |
Medicine for Rudolph |
[Code] [Test] |
518 |
|
|
20 |
Infinite Elves and Infinite Houses |
[Code] [Test] |
665280 |
705600 |
| 2016 |
3 |
Squares With Three Sides |
[Code] [Test] |
1050 |
1921 |
|
4 |
Security Through Obscurity |
[Code] [Test] |
185371 |
984 |
|
5 |
How About a Nice Game of Chess? |
[Code] [Test] |
801b56a7 |
424a0197 |
|
6 |
Signals and Noise |
[Code] [Test] |
mshjnduc |
apfeeebz |
|
7 |
Internet Protocol Version 7 |
[Code] [Test] |
115 |
231 |
|
12 |
Leonardo's Monorail |
[Code] [Test] |
318009 |
9227663 |
|
14 |
One-Time Pad |
[Code] [Test] |
15035 |
|
|
16 |
Dragon Checksum |
[Code] [Test] |
11111000111110000 |
10111100110110100 |
|
20 |
Firewall Rules |
[Code] [Test] |
32259706 |
113 |
|
25 |
Clock Signal |
[Code] |
158 |
|
| 2017 |
1 |
Inverse Captcha |
[Code] [Test] |
1047 |
982 |
|
2 |
Corruption Checksum |
[Code] [Test] |
36766 |
261 |
|
4 |
High-Entropy Passphrases |
[Code] [Test] |
466 |
251 |
|
5 |
A Maze of Twisty Trampolines, All Alike |
[Code] [Test] |
372671 |
25608480 |
|
15 |
Dueling Generators |
[Code] [Test] |
594 |
328 |
| 2018 |
1 |
Chronal Calibration |
[Code] [Test] |
522 |
73364 |
|
2 |
Inventory Management System |
[Code] [Test] |
4693 |
pebjqsalrdnckzfihvtxysomg |
|
3 |
No Matter How You Slice It |
[Code] [Test] |
109143 |
506 |
|
5 |
Alchemical Reduction |
[Code] [Test] |
11668 |
4652 |
| 2019 |
1 |
The Tyranny of the Rocket Equation |
[Code] |
3392373 |
5085699 |
|
2 |
1202 Program Alarm |
[Code] |
3716250 |
6472 |
| 2020 |
1 |
Report Repair |
[Code] [Test] |
1005459 |
92643264 |
|
2 |
Password Philosophy |
[Code] [Test] |
493 |
593 |
|
3 |
Toboggan Trajectory |
[Code] [Test] |
280 |
4355551200 |
|
4 |
Passport Processing |
[Code] [Test] |
216 |
150 |
|
5 |
Binary Boarding |
[Code] [Test] |
842 |
617 |
|
6 |
Custom Customs |
[Code] [Test] |
6530 |
3323 |
|
7 |
Handy Haversacks |
[Code] [Test] |
213 |
38426 |
|
8 |
Handheld Halting |
[Code] [Test] |
1939 |
2212 |
|
9 |
Encoding Error |
[Code] |
1492208709 |
238243506 |
|
10 |
Adapter Array |
[Code] [Test] |
2590 |
226775649501184 |
|
11 |
Seating System |
[Code] [Test] |
2386 |
2091 |
|
12 |
Rain Risk |
[Code] [Test] |
1533 |
25235 |
|
13 |
Shuttle Search |
[Code] [Test] |
370 |
894954360381385 |
|
14 |
Docking Data |
[Code] [Test] |
14862056079561 |
3296185383161 |
|
15 |
Rambunctious Recitation |
[Code] [Test] |
206 |
955 |
|
16 |
Ticket Translation |
[Code] [Test] |
22000 |
410460648673 |
|
17 |
Conway Cubes |
[Code] [Test] |
362 |
1980 |
|
19 |
Monster Messages |
[Code] [Test] |
151 |
|
|
20 |
Jurassic Jigsaw |
[Code] [Test] |
68781323018729 |
|
|
21 |
Allergen Assessment |
[Code] [Test] |
2078 |
lmcqt,kcddk,npxrdnd,cfb,ldkt,fqpt,jtfmtpd,tsch |
|
22 |
Crab Combat |
[Code] [Test] |
33434 |
31657 |
|
23 |
Crab Cups |
[Code] [Test] |
97632548 |
|
|
24 |
Lobby Layout |
[Code] [Test] |
269 |
3667 |
|
25 |
Combo Breaker |
[Code] [Test] |
3286137 |
|
| 2021 |
1 |
Sonar Sweep |
[Code] [Test] |
1696 |
1737 |
|
2 |
Dive! |
[Code] [Test] |
1762050 |
1855892637 |
|
3 |
Binary Diagnostic |
[Code] [Test] |
2967914 |
7041258 |
|
4 |
Giant Squid |
[Code] [Test] |
38913 |
16836 |
|
5 |
Hydrothermal Venture |
[Code] [Test] |
3990 |
21305 |
|
6 |
Lanternfish |
[Code] [Test] |
359999 |
1631647919273 |
|
7 |
The Treachery of Whales |
[Code] [Test] |
328187 |
91257582 |
|
8 |
Seven Segment Search |
[Code] [Test] |
288 |
940724 |
|
9 |
Smoke Basin |
[Code] [Test] |
544 |
1017792 |
|
10 |
Syntax Scoring |
[Code] [Test] |
319233 |
1118976874 |
|
11 |
Dumbo Octopus |
[Code] [Test] |
1640 |
312 |
|
13 |
Transparent Origami |
[Code] [Test] |
671 |
PCPHARKL |
|
14 |
Extended Polymerization |
[Code] [Test] |
2584 |
3816397135460 |
| 2022 |
1 |
Calorie Counting |
[Code] [Test] |
72240 |
210957 |
|
2 |
Rock Paper Scissors |
[Code] [Test] |
12458 |
12683 |
|
3 |
Rucksack Reorganization |
[Code] [Test] |
7878 |
2760 |
|
4 |
Camp Cleanup |
[Code] [Test] |
599 |
928 |
|
5 |
Supply Stacks |
[Code] [Test] |
JCMHLVGMG |
LVMRWSSPZ |
|
6 |
Tuning Trouble |
[Code] [Test] |
1282 |
3513 |
|
7 |
No Space Left On Device |
[Code] [Test] |
1084134 |
6183184 |
|
8 |
Treetop Tree House |
[Code] [Test] |
1708 |
504000 |
|
9 |
Rope Bridge |
[Code] [Test] |
6011 |
2419 |
|
10 |
Cathode-Ray Tube |
[Code] [Test] |
14720 |
FZBPBFZF |
|
11 |
Monkey in the Middle |
[Code] [Test] |
50830 |
14399640002 |
|
12 |
Hill Climbing Algorithm |
[Code] [Test] |
472 |
465 |
|
13 |
Distress Signal |
[Code] [Test] |
5825 |
24477 |
|
21 |
Monkey Math |
[Code] [Test] |
286698846151845 |
|
|
25 |
Full of Hot Air |
[Code] [Test] |
2‑2=12=1‑=‑1=000=222 |
|
| 2023 |
1 |
Trebuchet?! |
[Code] [Test] |
55386 |
54824 |
|
2 |
Cube Conundrum |
[Code] [Test] |
2285 |
77021 |
|
3 |
Gear Ratios |
[Code] [Test] |
529618 |
77509019 |
|
4 |
Scratchcards |
[Code] [Test] |
23847 |
8570000 |
|
5 |
If You Give A Seed A Fertilizer |
[Code] [Test] |
462648396 |
|
|
6 |
Wait For It |
[Code] [Test] |
2269432 |
35865985 |
|
7 |
Camel Cards |
[Code] [Test] |
250474325 |
|
| 2024 |
1 |
Historian Hysteria |
[Code] [Test] |
1970720 |
17191599 |
|
2 |
Red-Nosed Reports |
[Code] [Test] |
572 |
612 |
|
3 |
Mull It Over |
[Code] [Test] |
174960292 |
56275602 |
|
4 |
Ceres Search |
[Code] [Test] |
2483 |
1925 |
|
5 |
Print Queue |
[Code] [Test] |
6498 |
5017 |
|
6 |
Guard Gallivant |
[Code] [Test] |
5212 |
1767 |
|
7 |
Bridge Repair |
[Code] [Test] |
8401132154762 |
95297119227552 |
|
8 |
Resonant Collinearity |
[Code] [Test] |
252 |
839 |
|
9 |
Disk Fragmenter |
[Code] [Test] |
6360094256423 |
6379677752410 |
|
10 |
Hoof It |
[Code] [Test] |
746 |
1541 |
|
11 |
Plutonian Pebbles |
[Code] [Test] |
194482 |
232454623677743 |
|
12 |
Garden Groups |
[Code] [Test] |
1573474 |
966476 |
|
13 |
Claw Contraption |
[Code] [Test] |
28138 |
108394825772874 |
|
14 |
Restroom Redoubt |
[Code] [Test] |
224357412 |
7083 |
|
16 |
Reindeer Maze |
[Code] [Test] |
98484 |
|
|
17 |
Chronospatial Computer |
[Code] [Test] |
5,1,3,4,3,7,2,1,7 |
216584205979245 |
|
18 |
RAM Run |
[Code] [Test] |
302 |
24,32 |
|
19 |
Linen Layout |
[Code] [Test] |
267 |
796449099271652 |
|
20 |
Race Condition |
[Code] [Test] |
1426 |
1000697 |
|
22 |
Monkey Market |
[Code] [Test] |
20332089158 |
2191 |
|
25 |
Code Chronicle |
[Code] [Test] |
3608 |
|
| 2025 |
1 |
Secret Entrance |
[Code] [Test] |
999 |
6099 |
|
2 |
Gift Shop |
[Code] [Test] |
54234399924 |
70187097315 |
|
3 |
Lobby |
[Code] [Test] |
17113 |
169709990062889 |
|
4 |
Printing Department |
[Code] [Test] |
1411 |
8557 |
|
5 |
Cafeteria |
[Code] [Test] |
601 |
367899984917516 |
|
6 |
Trash Compactor |
[Code] [Test] |
5733696195703 |
10951882745757 |
|
7 |
Laboratories |
[Code] [Test] |
1711 |
36706966158365 |
|
8 |
Playground |
[Code] [Test] |
135169 |
302133440 |
|
9 |
Movie Theater |
[Code] [Test] |
4777409595 |
1473551379 |
|
10 |
Factory |
[Code] [Test] |
517 |
21469 |
|
11 |
Reactor |
[Code] [Test] |
699 |
388893655378800 |
|
12 |
Christmas Tree Farm |
[Code] |
524 |
|
- Check formatting:
./gradlew ktlintCheck
- Fix formatting:
./gradlew ktlintFormat