Commit Graph

242 Commits

Author SHA1 Message Date
5513ae8386 feat: solve part one using basic parsing 2025-12-02 20:38:20 +01:00
f1730c30cb feat: register D8 and parse input 2025-12-02 20:14:37 +01:00
ce7d42621f test: add unit test for part one 2025-12-02 20:13:01 +01:00
8eafb1f7c5 feat: include 2015D8 2025-12-02 19:55:26 +01:00
81be03e8ee chore: add 2015D8 dataset 2025-12-02 19:54:54 +01:00
d662f693b8 feat: don't bruteforce every number, use recursion to generate patterns to look for 2025-12-02 18:09:45 +01:00
8f265eae05 feat: add per-year aggregator packages so main.go remains readable 2025-12-02 09:51:21 +01:00
fe20a0b654 feat: solve part two using a bit of bruteforce 2025-12-02 07:48:48 +01:00
aa80e4eb8e revert: remove useless helper as PartOne and PartTwo will have a different behavior 2025-12-02 07:35:50 +01:00
0d029f2861 feat: unify invalid checks with exactTwo boolean parameter 2025-12-02 07:19:57 +01:00
edf94432f4 test: add unit test for part two 2025-12-02 06:53:45 +01:00
33552358f8 feat: solve p1 2025-12-02 06:52:30 +01:00
45d3e93a93 test: add unit test for p1 2025-12-02 06:46:42 +01:00
a05450c73a chore: add 2025D2 dataset 2025-12-02 06:27:22 +01:00
6b95f5ced0 test: add an almost arbitrary test for p2 2025-12-01 23:20:37 +01:00
9caee546f0 feat: solve part two by overriding wire b and re-evaluating circuit 2025-12-01 23:11:41 +01:00
8e831d85fe fix: replace Split with SplitSeq as it's a loop (thanks lsp) 2025-12-01 23:09:30 +01:00
b8ab5fae7b test: updateInput to simulate new ParseInput output 2025-12-01 23:08:22 +01:00
3262d1cbb8 refactor: build instruction in ParseInput and add evaluateWire helper 2025-12-01 23:07:29 +01:00
766ee97dd3 feat: solve part one using recursion and memoization 2025-12-01 22:59:28 +01:00
c41c96e628 test: add unit test for p1, based on manual calculations 2025-12-01 22:59:05 +01:00
fb46fceb75 refactor: just moving code here and there 2025-12-01 22:48:56 +01:00
d88d64edd4 chore: 2015D7 dataset 2025-12-01 22:43:24 +01:00
e81194721c refactoring: just better naming 2025-12-01 21:53:50 +01:00
a680e0ba48 refactor: create parseInstruction and instruction{} to use it in both parts 2025-12-01 21:31:51 +01:00
345defec4d feat: solve p2 2025-12-01 21:28:27 +01:00
3756279dab test: add unit test for p2 2025-12-01 20:52:57 +01:00
70189f4295 feat: solve part one 2025-12-01 20:47:02 +01:00
cdacf7ae06 test: add unit test for p1 from paper calculation 2025-12-01 20:46:55 +01:00
074c762960 feat: add 2015D6 dataset 2025-12-01 20:35:08 +01:00
cdefd68320 feat: add 2018D3 dataset 2025-12-01 20:09:37 +01:00
f28611a7bf test: add unit tests for p1/p2 2025-12-01 20:09:29 +01:00
f98034b00c feat: solve both parts 2025-12-01 20:09:20 +01:00
b1be29c21c feat: solve part two using modular arithmetic 2025-12-01 12:35:20 +01:00
b04dcc5aea test: add P2 unit test 2025-12-01 12:20:11 +01:00
11b6227d0e feat: add P1 solution 2025-12-01 12:19:01 +01:00
31660c7510 test: add P1 unit test 2025-12-01 12:18:54 +01:00
728bbb2a06 feat: add input for 2022D2 2025-12-01 12:18:42 +01:00
0949840317 feat: solve P2, same as P1 but check every time the dial passes through 0 during the rotation 2025-12-01 07:41:50 +01:00
daec5a8671 test: add unit test for p2 2025-12-01 07:35:03 +01:00
d66cd1179d feat: solve P1 using modulo to keep it between boundaries 2025-12-01 07:31:15 +01:00
2d3828c55d test: design unit test for part one 2025-12-01 07:20:12 +01:00
b7a7bfb5c7 feat: add 2025D1 input 2025-12-01 07:20:01 +01:00
f3d73b7c4b feat: P2 solution using pairwise comparison 2025-11-30 13:08:46 +01:00
20ab5fe4e5 test: adapted p2 test as it expects string and not int 2025-11-30 13:04:08 +01:00
959c05b769 feat: add part one solution 2025-11-30 12:55:52 +01:00
0dc0c3af3d feat: 2018D2 dataset 2025-11-30 12:50:41 +01:00
c6dc950d3f test: add unit test for p1 2025-11-30 12:50:33 +01:00
e5a1504f6b feat: add solutions for P1/P2 2018D1 2025-11-30 12:46:09 +01:00
9da1fa02c8 feat: 2018D1 dataset 2025-11-30 12:46:01 +01:00