Commit Graph

68 Commits

Author SHA1 Message Date
ktims b060de20c7 day11: clippies
test / AoC 2024 (push) Successful in 3m7s
2024-12-13 23:44:46 -08:00
ktims bc7ec50c94 CI: get real inputs, and do a full run 2024-12-13 23:44:29 -08:00
ktims 8ae2115b52 CI: create fake inputs so tests can run
test / AoC 2024 (push) Successful in 1m27s
2024-12-13 23:06:23 -08:00
ktims 74a6b16924 chore: rust fmt 2024-12-13 23:06:07 -08:00
ktims e8a38e7b24 day14: pretty print a tree 2024-12-13 23:05:58 -08:00
ktims c6153663b5 day14: complete solution
test / AoC 2024 (push) Failing after 58s
2024-12-13 22:53:07 -08:00
ktims 8b011941c4 CI: make a workspace
test / AoC 2024 (push) Failing after 1m7s
2024-12-13 18:09:22 -08:00
ktims d88f907c03 clippies
test / AoC 2024 (push) Failing after 1m14s
2024-12-13 17:55:28 -08:00
ktims d6d81a0c29 CI: run tests
test / AoC 2024 (push) Failing after 1m22s
2024-12-13 17:52:42 -08:00
ktims ed184fc92c day12/day13: codspeed compat (&str input) 2024-12-13 17:42:44 -08:00
ktims a1774d1f73 grid: impl FromStr for Grid<u8> 2024-12-13 17:28:45 -08:00
ktims 3bbf05b30c pre-commit 2024-12-13 02:24:18 -08:00
ktims 6a8a7a9ad1 pre-commit update 2024-12-13 02:22:55 -08:00
ktims 1a6d37f4f3 clippies 2024-12-13 02:17:57 -08:00
ktims 35637cece1 readme 2024-12-13 02:15:41 -08:00
ktims ebf5a0a489 day13: complete solution 2024-12-13 02:12:18 -08:00
ktims 4aa7e9f43c day3: perf - branchless 2024-12-12 17:56:28 -08:00
ktims a5439062a4 day3: performance - avoid converting &[u8] to &str 2024-12-12 17:38:42 -08:00
ktims 3658183deb day7: performance. DFS with pruning. 2024-12-12 16:02:13 -08:00
ktims 38cba37b06 day5: perf: switch to sort-based implementation 2024-12-12 14:50:00 -08:00
ktims 6022d2cc39 multiple: Use FxHashMap for s p e e d 2024-12-12 14:07:22 -08:00
ktims 447ff5c62c grid: improve ergonomics with more trait impls and other improvements
update puzzles to pass tests, some performance gains
2024-12-12 02:14:29 -08:00
ktims c213bbbc27 day12: optimization and cleanup 2024-12-12 01:24:14 -08:00
ktims a56fc933c9 day12: complete solution 2024-12-11 22:27:59 -08:00
ktims 31eb500832 day7: slight performance improvement from skipping ThreadLoacls 2024-12-11 19:40:45 -08:00
ktims 4c14c6092e bugfix: count off by one, thought ^ was left in the map, but it gets
replaced by X
2024-12-11 18:59:58 -08:00
ktims de535303d4 day11: don't use aoc_generator 2024-12-11 18:43:57 -08:00
ktims 50b6d045e7 multiple: genericize Grid over coordinate type, parallelism for day 11 2024-12-11 18:43:13 -08:00
ktims d2defae8a2 chore: make day modules public 2024-12-11 18:40:53 -08:00
ktims cd8900d936 chore: enable LTO for release builds 2024-12-11 18:40:29 -08:00
ktims 11b29a4d57 chore: refactor for cargo-aoc / codspeed 2024-12-11 15:45:52 -08:00
ktims 3bfde9fd9b day11: some cleanup, slight performance 2024-12-11 03:11:17 -08:00
ktims 2e239681ce day11: performance 2024-12-11 00:55:47 -08:00
ktims a7354b6ed7 day11: part 2 solution 2024-12-10 23:40:03 -08:00
ktims 462918b382 day11: part 1 solution 2024-12-10 21:55:00 -08:00
ktims 8af11a6092 day10: performance. slight gain from memoizing visited positions in p1. 2024-12-10 17:07:00 -08:00
ktims d9d55b069f day10: optimization
Part 2 doesn't actually require tracking state at all, it's enough to
just follow the rules and count every DFS that lands on a target square.

Part 1 optimized by only tracking which targets have been previously
visited, instead of all squares.

Both parts, pass position reference to recursive calls instead of by
value for tiny improvement.
2024-12-10 16:20:15 -08:00
ktims 0716dde8b1 day10: complete solution 2024-12-09 21:59:39 -08:00
ktims 206c1fca85 day9: optimize part 2 2024-12-09 00:23:40 -08:00
ktims f7cf4f1e9f day9: optimize part 1 2024-12-08 23:58:47 -08:00
ktims b08c8fbd80 day9: use part 2 'inodes' table to speed up part 1 2024-12-08 23:51:51 -08:00
ktims 2bc751dd0d day9: complete solution
previous commit should actually work for part 1 if you don't truncate
the input.
2024-12-08 23:34:15 -08:00
ktims a6ea5b4155 day9: second rewrite, still failing 2024-12-08 22:57:20 -08:00
ktims 622877843e day8: refactor and cleanup 2024-12-07 22:49:57 -08:00
ktims 47e40942e2 day8: complete solution 2024-12-07 21:43:56 -08:00
ktims 3e0bc0d5cc day7: parallel solution, < 100ms
This is definitely a problem that calls for DFS, but I couldn't be
bothered.
2024-12-06 22:52:00 -08:00
ktims 868c3e56fc day7: complete solution 2024-12-06 21:40:25 -08:00
ktims fee37aebd0 day6: further performance improvement, ~55ms total runtime
We only need to run the guard forward from the step before the obstacle
we placed, instead of starting at the original starting position.

The code starts to look ugly...
2024-12-06 17:05:36 -08:00
ktims b1918bbebf day6: performance - only check obstacles on the original path
700ms -> 150ms
2024-12-06 10:59:43 -08:00
ktims 1cd535c2aa chore: clippies 2024-12-06 10:52:31 -08:00