Commit Graph

47 Commits

Author SHA1 Message Date
da25b73eca day16: use tail recursion unstead of passing mutable state 2023-12-16 11:07:39 -08:00
842def62dc day16: back to elegant recursion now that we track beams
problem 1 solution was busting the stack, so used an iterative approach,
but now that we track lit beams we can bail out early enough not to bust
the stack. performance is the same but it's much nicer.
2023-12-15 23:54:22 -08:00
427a0c766b day16: much cleaner, nicely factored solution, and much faster 2023-12-15 23:42:43 -08:00
332620db0f day16: problem 2 solution 2023-12-15 22:39:03 -08:00
a8ec929818 day16: problem 1 solution 2023-12-15 22:19:46 -08:00
f04078fbd7 boilerplate: remove unnecessary Duration import 2023-12-15 20:56:13 -08:00
498c96eaeb day5: reimplement in a sane, fast way 2023-12-15 18:10:29 -08:00
84bcbd550b day5: add timing 2023-12-15 18:09:49 -08:00
e12c0134b0 day15: functional hash implementation using fold() 2023-12-14 23:33:48 -08:00
eac460417c day15: problem 1 & 2 solutions 2023-12-14 22:07:49 -08:00
24c534ff88 day14: itertools is not used anymore 2023-12-14 15:43:11 -08:00
4f1f838d62 day14: simple Vec lookup is faster than HashMap since the cycle is short 2023-12-14 15:41:34 -08:00
ca3254e1e1 day14: translation-based minimal copy implementation 2023-12-14 14:19:58 -08:00
78fb884c03 day14: some silly and not super effective performance optimizations 2023-12-14 01:57:06 -08:00
7926475a56 day14: refactor and cleanup duplicate code 2023-12-14 00:06:24 -08:00
e062ef5078 day14 problem 2 solution 2023-12-13 23:29:03 -08:00
11a7837400 day14: problem 1 solution 2023-12-13 22:12:50 -08:00
5666aee5f2 day13: problem 2 solution 2023-12-12 22:20:54 -08:00
f12e99c1f4 day13: problem 1 solution 2023-12-12 22:05:32 -08:00
c797e874d5 boilerplate: add timing 2023-12-12 02:24:24 -08:00
a431c4b75f day12: problem 2 solution
what a doozy. iterative solution from part 1 totally untenable.
recursive solution a bit tricky, but still not fast enough for brute
force. had to implement memoization cache for reasonable runtime.
2023-12-12 02:20:53 -08:00
20e2a9f7be day12: problem 1 solution
Slow and inefficient but fast enough for a solve
2023-12-11 23:12:06 -08:00
96ea3c317d day11: problem 1 & problem 2 solutions 2023-12-10 22:34:39 -08:00
ebd1d0ff94 day10: problem 2 solution
slightly cheated for ideas on part 2. still a pretty ugly solution.
2023-12-10 00:02:29 -08:00
26f990840a day10: problem 1 solution 2023-12-09 23:24:58 -08:00
b84b0b04e2 day9: formatting 2023-12-08 21:41:30 -08:00
37b645c341 day9: problem 2 solution 2023-12-08 21:39:45 -08:00
d2718db633 day9: problem 1 solution 2023-12-08 21:29:19 -08:00
be0ed3e377 day8: problem 1 & 2 solutions 2023-12-07 22:07:07 -08:00
c8eb06a5ec boilerplate: add test boilerplate 2023-12-07 20:56:59 -08:00
9ab450d258 day7: problem 1 & 2 solutions
forgot to commit problem 1 only solution
2023-12-06 22:37:02 -08:00
9718b8ab04 day6: problem 2 solution 2023-12-06 18:15:36 -08:00
de6e826c31 day6: problem 1 solution 2023-12-06 18:07:15 -08:00
077f4ff8ee day5: problem 2 solution. parallelized! 2023-12-06 17:24:24 -08:00
0665e109af day5: performance: don't iterate to position just do arithemtic 2023-12-06 11:07:40 -08:00
6d1174e2db day5: problem 1 solution 2023-12-06 09:06:59 -08:00
25daf558e6 boilerplate: make generic over Lines type 2023-12-05 21:46:11 -08:00
db4a8b0d24 day4: Add tests 2023-12-05 21:45:49 -08:00
a1f44e5886 day4: problem 2 solution 2023-12-05 19:47:45 -08:00
0d330c0a39 day4: problem 1 solution 2023-12-05 19:13:55 -08:00
b1e7d7ad35 day3: problem 2 solution. this is ugly. 2023-12-05 18:49:36 -08:00
1911614428 day3: problem 1 solution 2023-12-05 16:01:40 -08:00
b9247c9eaf day2: problem 2 solution 2023-12-05 13:25:11 -08:00
3a5fcbf980 day2: solution to problem 1 2023-12-05 13:16:39 -08:00
8b3ad9d645 Move .gitignore to the parent 2023-12-05 13:16:21 -08:00
658e4e4e28 Add boilerplate 2023-12-05 12:36:28 -08:00
803030a02c Day 1 initial solutions 2023-12-05 12:34:22 -08:00