Commit Graph
100 Commits
Author SHA1 Message Date
mgrettondann 2383862d8d 2023 Day 20
Note day 20 part 2 actually doesn't complete in a reasonable time.

We hack the answer together from the debug output.
2023-12-20 10:54:45 +00:00
mgrettondann 16f240c930 2023 Day 19 add debug flag 2023-12-19 11:47:47 +00:00
mgrettondann db8425d331 2023 Day 19 2023-12-19 11:20:57 +00:00
mgrettondann 066671f953 2023 Day 18 Part 2 documented. 2023-12-18 11:03:59 +00:00
mgrettondann ae9a5c230c 2023 Day 18 2023-12-18 10:46:52 +00:00
mgrettondann 239e12e89d 2023 Day 17 2023-12-17 11:00:47 +00:00
mgrettondann 55902dc9b6 2023 Day 16 Part 2 code tidy
We can simplify (but obfuscate) some of the beam direction calculations.
2023-12-16 09:57:44 +00:00
mgrettondann a40aaa9d37 2023 Day 16 Part 2 optimisation
We reduce the number of items we put on the list of beams to analyse.
Saving memory allocations list modifications.
2023-12-16 09:46:46 +00:00
mgrettondann a3dc84770a 2023 Day 16 2023-12-16 09:29:28 +00:00
mgrettondann 0a41c0529d 2023 Day 15 2023-12-15 08:48:52 +00:00
mgrettondann 5c6609109f 2023 Day 14 2023-12-14 09:11:36 +00:00
mgrettondann a3edb344dd 2023 Day 13 Part 2 2023-12-13 09:38:53 +00:00
mgrettondann 6c82d3a40a 2023 Day 13 Part 1
Add a const
2023-12-13 09:07:13 +00:00
mgrettondann 5b3cfac3c4 2023 Day 13 Part 1
And optimized.
2023-12-13 09:06:19 +00:00
mgrettondann 625480f76b 2023 Day 12 Part 2 reworked.
And optimized.
2023-12-12 13:47:25 +00:00
mgrettondann 5d0004236b 2023 Day 12 Part 2 reworked.
Let's try to assign ### to positions and validate earlier.
2023-12-12 13:12:20 +00:00
mgrettondann 3ca1d02fab 2023 Day 12 Part 2 Proposed soln
Not scanning the whole string everytime.
2023-12-12 10:30:09 +00:00
mgrettondann 0febe907d1 2023 Day 12 Part 2 Proposed soln
Needs optimisation.
2023-12-12 10:03:09 +00:00
mgrettondann 6db151783c 2023 Day 12 Part 1 2023-12-12 10:02:46 +00:00
mgrettondann 1d0f763791 2023 Day 11 2023-12-11 07:43:05 +00:00
mgrettondann cffae9df50 2023 Day 10 2023-12-10 11:19:20 +00:00
mgrettondann c6e9727f37 2023 Day 9 2023-12-09 09:10:17 +00:00
mgrettondann fb8121b093 2023 Day 8 2023-12-08 08:37:39 +00:00
mgrettondann e1475392cc 2023 Day 7 2023-12-07 09:07:21 +00:00
mgrettondann 5f0b8d9227 2023 Day 6 2023-12-06 09:40:04 +00:00
mgrettondann f928437f9c 2023 Day 5 2023-12-05 09:47:19 +00:00
mgrettondann da51be45c9 2023 Day 4 Part 2 2023-12-04 09:40:20 +00:00
mgrettondann 3300d3c35d 2023 Day 4 Part 1 2023-12-04 09:25:16 +00:00
mgrettondann be7eeaa5d3 2023 Day 3 in a tidy form. 2023-12-03 09:40:50 +00:00
mgrettondann a126076a26 2023 Day 2 in a tidy form. 2023-12-02 09:10:56 +00:00
mgrettondann 86d9f2d22e 2023 Day 1 now tidied 2023-12-02 09:10:43 +00:00
mgrettondann 7a0226e83f 2023 Day 1 2023-12-01 10:34:02 +00:00
mgrettondann be27621663 Add includes of cassert 2023-11-30 20:29:35 +00:00
mgrettondann f421aee783 Solutions for 2022 day 25 2022-12-25 08:49:21 +00:00
mgrettondann 5150b53c48 Solutions for 2018 day 14 2022-12-24 17:20:43 +00:00
mgrettondann 876923ba62 Solutions for 2018 day 13 2022-12-24 12:37:20 +00:00
mgrettondann 1114e0f705 Solutions for 2022 day 24 2022-12-24 11:29:15 +00:00
mgrettondann 126fb672b8 Solutions for 2018 day 12 2022-12-23 20:10:08 +00:00
mgrettondann 17d796ceb0 Solutions for 2022 day 23 2022-12-23 18:13:54 +00:00
mgrettondann d28540eae1 Solutions for 2022 day 22 2022-12-22 09:52:50 +00:00
mgrettondann b6ac5462ff Solutions for 2018 day 11 2022-12-22 06:08:38 +00:00
mgrettondann 041da7b737 Solutions for 2018 day 10 2022-12-21 14:44:55 +00:00
mgrettondann c244222ec4 Solutions for 2018 day 9 2022-12-21 14:14:06 +00:00
mgrettondann b1ba25890e Solutions for 2018 day 8 2022-12-21 13:20:03 +00:00
mgrettondann 5e1129051b Solutions for 2018 day 7 2022-12-21 12:06:56 +00:00
mgrettondann 3c3a1edd61 Optimize 2018 day 6 part 2.
Basically tighten the search parameters.
2022-12-21 10:59:49 +00:00
mgrettondann db293409e4 Add solutions for 2022 day 21 2022-12-21 10:47:22 +00:00
mgrettondann 6e82a377c4 Add solutions for 2018 day 6 2022-12-21 10:47:13 +00:00
mgrettondann d3999e2e8f Add solutions for 2018 day 5 2022-12-20 21:31:31 +00:00
mgrettondann ada38d67f6 Add solutions for 2018 day 4 2022-12-20 17:22:41 +00:00
mgrettondann 22bd166c28 Make 2022 day 19 part 2 more efficient 2022-12-20 14:39:28 +00:00
mgrettondann 9b49579c75 Solutions for 2022 day 20 2022-12-20 12:17:28 +00:00
mgrettondann 564c75a5c6 Dry run for 2022 day 19 part 2
This is slow, but will check everything.  I want to see whether being greedy will be better.
2022-12-19 15:03:39 +00:00
mgrettondann 14f4274bdd Dry run for 2022 day 19 part 1
This is slow, but will check everything.  I want to see whether being greedy will be better.
2022-12-19 07:43:41 +00:00
mgrettondann ff29cc8efe Add solution for 2022 day 17 Part 2 2022-12-18 13:50:39 +00:00
mgrettondann 3f75d687a9 Add solution for 2022 day 17 Part 1 2022-12-18 13:16:01 +00:00
mgrettondann 5d1edaa0a3 Add solution for 2022 day 18 2022-12-18 13:05:59 +00:00
mgrettondann 1c2074d074 Day 2022-16 tidied up. 2022-12-17 07:22:48 +00:00
mgrettondann 1f73a0f280 Initial solution for 2022 day 16. 2022-12-16 16:35:22 +00:00
mgrettondann 3627718a3e Tidy solution for 2022 day 15 part 2 x2. 2022-12-15 09:52:05 +00:00
mgrettondann ed02811d56 Tidy solution for 2022 day 15 part 2. 2022-12-15 09:46:52 +00:00
mgrettondann 026f2eba2c Add solutions for 2022 day 15. 2022-12-15 08:10:29 +00:00
mgrettondann 5d60304825 Add solutions for 2018 day 3. 2022-12-14 15:26:43 +00:00
mgrettondann 7c23c30cf6 Tidy up CMakeLists for includes. 2022-12-14 13:51:14 +00:00
mgrettondann 96f39f019e Add Puzzles for 2022 day 14 2022-12-14 08:59:32 +00:00
mgrettondann 9cad2da05d Add Puzzles for 2022 day 13 2022-12-13 13:01:44 +00:00
mgrettondann 5be1a0ad47 Add Puzzles for 2022 day 12 2022-12-12 07:51:51 +00:00
mgrettondann 54c9b00c96 Update CLion config 2022-12-11 08:49:05 +00:00
mgrettondann e384f5b571 Add puzzles for 2022 Day 11. 2022-12-11 07:47:51 +00:00
mgrettondann c9fa108996 Clang tidy 2022 Day 10. 2022-12-10 07:29:50 +00:00
mgrettondann 0e5e5b70d9 Clang tidy 2022 Day 9. 2022-12-09 07:17:55 +00:00
mgrettondann 04abe87471 Clang tidy 2022 Day 8. 2022-12-08 09:29:48 +00:00
mgrettondann bfd11cf480 Clang tidy 2022 Day 7. 2022-12-07 07:41:52 +00:00
mgrettondann 54900d5a36 Add 2022 Day 7. 2022-12-07 07:29:23 +00:00
mgrettondann d57308ea83 Add 2022 Day 6. 2022-12-06 10:51:17 +00:00
mgrettondann 0b06899b68 Add 2022 Day 5. 2022-12-05 07:35:09 +00:00
mgrettondann 3117a35581 Add 2022 Day 4. 2022-12-04 08:12:44 +00:00
mgrettondann 46b36d7ec8 Add 2022 Day 3. 2022-12-03 08:26:18 +00:00
mgrettondann 7005eb7ff4 Add 2022 Day 2. 2022-12-02 07:01:11 +00:00
mgrettondann 3c377b04db Add 2018 Day 2 part 2. 2022-12-01 19:10:00 +00:00
mgrettondann 24753f81d5 Add 2018 Day 2 Part 1 2022-12-01 17:36:53 +00:00
mgrettondann bc8ab51e99 Add 2022 Day 1 solutions 2022-12-01 07:02:12 +00:00
mgrettondann df9078ff37 Add 2021 Day 1 solutions 2022-11-27 17:22:43 +00:00
mgrettondann 931ad402fa Tidy 2021 25 solution 2022-11-27 17:22:29 +00:00
mgrettondann 29079b59bc Add Puzzle 2021-25-01 2022-11-26 21:34:03 +00:00
mgrettondann 4b275a855e Add Puzzle 2021-24 2022-11-26 21:10:00 +00:00
mgrettondann aae3bc7556 Merge remote-tracking branch 'origin/main' 2022-01-12 14:29:03 +00:00
mgrettondann 539666d508 Add 2017 puzzle 1 2022-01-12 14:28:19 +00:00
mgrettondann 0c2ac4d5f0 Add 2020 puzzle 1 2022-01-12 14:28:00 +00:00
mgrettondann 1fab8c9161 Completed puzzles for 2021 day 23 2022-01-12 14:26:21 +00:00
mgrettondann 3ba00ad3eb Separate out Dijkstra implementation
This separates the Dijkstra implementation into its own generic function.

Whilst doing this we can simplify the code and also save yet more memory!

Still don't get correct results for part 2.
2022-01-12 11:31:09 +00:00
mgrettondann a1a7d11583 Separate out Dijkstra implementation
This separates the Dijkstra implementation into its own generic function.

Whilst doing this we can simplify the code and also save yet more memory!

Still don't get correct results for part 2.
2022-01-12 09:30:21 +00:00
mgrettondann 29005ed7ba Improved version of 2021 puzzle 23-02
Building on changes to part 1 see if this performs better and produces correct results.
2021-12-25 08:58:21 +00:00
mgrettondann a5fc32ed07 Imrpove Puzzle 23-01 by modelling top row correctly.
Previously we modelled the top row as a connected series of nodes and allowed them to connect to each other directly.  This ignored the rule that you have to move directly to the place you want on the top row and then back out of it.

However, that was fine as the lowest cost would imply that.  But it does slow down and give more states to consider.

Instead, model the nodes on the top row as being directly connected to the nodes in the second row.  Add some rules about when you can move from one to the other and use those.

This reduces the number of states we have to consider in total.  And hopefully speeds up the process.
2021-12-24 12:34:00 +00:00
mgrettondann cca3a22a43 Proposed solutions for 2021 day 23
Improve speed by using two sets for State management:

states: Contains all the states we need to visit indexed by state - Cost is ignored.
costs:  Contains all the states we need to visit indexed by cost then state.

This then means the lookup for the minimum cost is fast.
2021-12-24 11:53:57 +00:00
mgrettondann b53002d48a Proposed solutions for 2021 day 23 2021-12-23 19:49:33 +00:00
mgrettondann fcfdcddd33 Add 2017 Day 25 puzzles 2021-12-22 16:36:30 +00:00
mgrettondann e06e78ce3c Add 2017 Day 24 puzzles 2021-12-22 15:57:06 +00:00
mgrettondann d1e6f5b086 Fix macOS builds 2021-12-22 15:19:53 +00:00
mgrettondann 997dad69b4 Add 2017 Day 23 puzzles 2021-12-22 15:17:21 +00:00