Commit Graph

813 Commits

Author SHA1 Message Date
bert e0e1bc26e8 Simplify implementation day 8
The second part doesn't actually need to start the search at the low
points; just iterating everything and keeping track of visited spaces is
enough.

Now that the iterator is only used in part 1, we inline the iterator to
remove some overhead from the code.
2021-12-09 12:02:07 +01:00
bert 77ce31980b Implement day 9 2021-12-09 11:56:29 +01:00
bert 8c78106846 Bit-optimize day 8
The state of a seven segment display can be stored in a byte after all.
Using NonZeroU8 makes the Options smaller too.
2021-12-08 13:52:08 +01:00
bert 22f767e8df Implement day 08 2021 2021-12-08 13:31:33 +01:00
bert 3434966ac2 Just use the median, obviously 2021-12-07 13:22:43 +01:00
bert c5f66fcc09 Avoid more allocations in day 7 part 1 2021-12-07 11:41:19 +01:00
bert c02f1e11c5 Convert recursion to iteration 2021-12-07 11:00:26 +01:00
bert d099614217 Improve part 2 with binary search 2021-12-07 10:40:34 +01:00
bert 766ee91719 Brute-force day 7 part 2 2021-12-07 10:12:01 +01:00
bert 2f3eb50a5b Implement day 7 part 1 2021-12-07 09:45:58 +01:00
bert b369f9d36a Implement day 6 2021 2021-12-06 09:21:00 +01:00
bert 1433b0cdbe Implement day 5
Nom is really nice and fast, why did I write parsers manually before.
2021-12-05 11:31:14 +01:00
bert 5e52da6e6b Use iterator instead of range 2021-12-04 11:57:01 +01:00
bert e50b812aed Day 4: more efficiently ignore completed cards 2021-12-04 11:40:40 +01:00
bert fdef10a78e Less awkward line length hack 2021-12-04 11:28:32 +01:00
bert 392aefb32d Less allocations in day 3 part 2
By working with binary numbers as integers rather than byte strings, we
don't need to allocate a Vec for each of them, reducing us to just the
allocations in the outer Vec.
2021-12-04 11:13:54 +01:00
bert fb358be8f0 Implementation day 4 2021 2021-12-04 10:43:02 +01:00
bert 612d3ecb6b Tricky solution day 03, could possibly be improved 2021-12-03 09:21:13 +01:00
bert d08a4e0e4e Merge day 1 solutions 2021-12-02 18:50:26 +01:00
bert ed844a997c Create reusable line reader 2021-12-02 18:27:48 +01:00
bert c9468ba139 Implementation 2021 day 2 2021-12-02 08:21:49 +01:00
bert 938eda0d22 Rework day 1
Simplify part 2 a lot, by not actually computing the sums because they
do not matter, only the changes do. Also eliminate the allocation
overhead while parsing line-by-line input.

Fixes the existing clippy error because the offending line no longer
exists.
2021-12-01 20:35:27 +01:00
bert f413b08da6 Very quick implementation for day 1 2021-12-01 09:30:03 +01:00
bert 10531e3422 Merge pull request #3 from bertptrs/prepare/2021 2021-12-01 09:08:43 +01:00
bert 2e0a7ea81d Update READMEs for 2021. 2021-11-29 20:31:29 +01:00
bert 2c64028978 Enable debug information for release 2021-11-28 17:13:27 +01:00
bert 89159137fe Add other days 2021-11-28 17:12:26 +01:00
bert 186d91d1b7 Use function pointers over dyn traits 2021-11-28 16:49:37 +01:00
bert c985ba8a1a Add CI for 2021 2021-11-22 18:51:59 +01:00
bert cece8439a7 Initial 2021 runner 2021-11-20 11:57:32 +01:00
bert 5f98b62f21 2019 day 24 part 2 2021-10-29 08:30:21 +02:00
bert affaf6e96f 2019 day 24 part 1 2021-10-28 17:55:17 +02:00
bert a6996e5234 2019 day 19 part 2 2021-10-21 08:25:20 +02:00
bert a64eff96a4 More efficiently scan lines 2021-10-21 08:16:08 +02:00
bert 7718fc59c6 2019 day 19 part 1 2021-10-21 08:05:22 +02:00
bert 4e3c9c75c5 Merge pull request #2 from bertptrs/rewrite-2019-python 2021-10-18 22:34:35 +02:00
bert 583b590a6c Remove last C++ remnant. 2021-10-18 21:50:22 +02:00
bert ef302bbeb7 Trivial reimplementation day 21 2021-10-18 19:45:36 +02:00
bert 5791760412 More efficiently pick items 2021-10-18 16:00:32 +02:00
bert e66f3df949 Implement brute force for 2019 day 25 2021-10-18 15:51:44 +02:00
bert 71f54bac6b Add minimal day 25 runner 2021-10-16 17:46:55 +02:00
bert dbf6b2eb17 Add input day 23 2021-07-03 17:59:58 +02:00
bert 05e2a4f3a7 intcode: make execute current not protected 2021-07-03 17:59:43 +02:00
bert ca43475a44 Implement day 23 2021-07-03 17:57:40 +02:00
bert 3f8c9505c3 Fix numpy deprecation 2021-07-03 15:26:38 +02:00
bert befa2eefaa Replace Travis with Github Actions 2021-07-03 15:20:52 +02:00
bert 22091fc8c3 Implement day 22 part 2 2021-07-03 15:05:49 +02:00
bert abc742e2ad Implement day 22 part 1 2021-07-03 14:15:11 +02:00
bert 8a137deae4 Update dependencies 2021-04-05 21:18:21 +02:00
bert a43f260e1b Implement day 17 part 1 2021-02-09 20:20:17 +01:00