0897e2e907
Implement day 12 part 2
2021-12-12 11:31:54 +01:00
4d1fdd9cc0
Implement day 12 part 1
2021-12-12 11:09:14 +01:00
84c160cf54
Simplify part 2
2021-12-11 17:20:22 +01:00
440d454911
Implement day 11
2021-12-11 13:56:10 +01:00
50cd6d8171
Implementation day 10 2021
2021-12-10 10:46:02 +01:00
dde9c0adbf
Update to RC version of clap
...
Deriving a parser has become an opt-in feature so we need to enable
that.
2021-12-09 12:14:15 +01:00
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
77ce31980b
Implement day 9
2021-12-09 11:56:29 +01:00
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
22f767e8df
Implement day 08 2021
2021-12-08 13:31:33 +01:00
3434966ac2
Just use the median, obviously
2021-12-07 13:22:43 +01:00
c5f66fcc09
Avoid more allocations in day 7 part 1
2021-12-07 11:41:19 +01:00
c02f1e11c5
Convert recursion to iteration
2021-12-07 11:00:26 +01:00
d099614217
Improve part 2 with binary search
2021-12-07 10:40:34 +01:00
766ee91719
Brute-force day 7 part 2
2021-12-07 10:12:01 +01:00
2f3eb50a5b
Implement day 7 part 1
2021-12-07 09:45:58 +01:00
b369f9d36a
Implement day 6 2021
2021-12-06 09:21:00 +01:00
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
5e52da6e6b
Use iterator instead of range
2021-12-04 11:57:01 +01:00
e50b812aed
Day 4: more efficiently ignore completed cards
2021-12-04 11:40:40 +01:00
fdef10a78e
Less awkward line length hack
2021-12-04 11:28:32 +01:00
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
fb358be8f0
Implementation day 4 2021
2021-12-04 10:43:02 +01:00
612d3ecb6b
Tricky solution day 03, could possibly be improved
2021-12-03 09:21:13 +01:00
d08a4e0e4e
Merge day 1 solutions
2021-12-02 18:50:26 +01:00
ed844a997c
Create reusable line reader
2021-12-02 18:27:48 +01:00
c9468ba139
Implementation 2021 day 2
2021-12-02 08:21:49 +01:00
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
f413b08da6
Very quick implementation for day 1
2021-12-01 09:30:03 +01:00
2e0a7ea81d
Update READMEs for 2021.
2021-11-29 20:31:29 +01:00
2c64028978
Enable debug information for release
2021-11-28 17:13:27 +01:00
89159137fe
Add other days
2021-11-28 17:12:26 +01:00
186d91d1b7
Use function pointers over dyn traits
2021-11-28 16:49:37 +01:00
cece8439a7
Initial 2021 runner
2021-11-20 11:57:32 +01:00