42 Commits

Author SHA1 Message Date
be27621663 Add includes of cassert 2023-11-30 20:29:35 +00:00
931ad402fa Tidy 2021 25 solution 2022-11-27 17:22:29 +00:00
29079b59bc Add Puzzle 2021-25-01 2022-11-26 21:34:03 +00:00
4b275a855e Add Puzzle 2021-24 2022-11-26 21:10:00 +00:00
1fab8c9161 Completed puzzles for 2021 day 23 2022-01-12 14:26:21 +00:00
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
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
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
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
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
b53002d48a Proposed solutions for 2021 day 23 2021-12-23 19:49:33 +00:00
3ae7eb86ac Add 2021 Day 22 puzzles 2021-12-22 09:46:52 +00:00
77811aa473 Add 2021 day 21 puzzles 2021-12-21 10:58:48 +00:00
495222c63c Add 2021 day 20 puzzles 2021-12-20 07:46:43 +00:00
f74dd3b60d Add 2021 day 19 puzzles 2021-12-19 14:15:04 +00:00
9e23269d53 Add 2021 day 18 puzzles 2021-12-18 16:29:46 +00:00
a6092d777e Add 2021 day 17 puzzles 2021-12-17 07:55:08 +00:00
11c9119dc5 Fix 2021-16-01 build for Linux 2021-12-16 10:39:51 +00:00
81e191a6e2 Add 2021 day 16 puzzles 2021-12-16 09:21:41 +00:00
0a041cd398 Add 2021 day 15 puzzles 2021-12-15 10:20:08 +00:00
d84673a779 Add 2021 day 14 puzzles 2021-12-14 08:13:01 +00:00
b5ef1aa7f0 Fix build on Linux 2021-12-13 10:03:59 +00:00
5b64f9670f Add 2021 day 13 puzzles 2021-12-13 07:27:34 +00:00
624b285d3d Tidyup 2021 day 12 puzzles 2021-12-12 08:06:02 +00:00
9e9321541a Tidyup 2021 day 12 puzzles 2021-12-12 08:05:13 +00:00
fcaf7595db Add 2021 day 12 puzzles 2021-12-12 08:02:35 +00:00
300456b9b2 Add 2021 day 11 puzzles 2021-12-11 07:36:13 +00:00
318243ccea Add 2021 day 10 puzzles 2021-12-10 10:16:46 +00:00
13fc28398f Add 2021 day 9 puzzles. 2021-12-09 14:29:22 +00:00
3578b298aa Add <cassert> header include
This fixes some Linux build failures.
2021-12-09 13:53:52 +00:00
290126fd00 Cleanup 2021 day 8 puzzles 2021-12-08 10:33:53 +00:00
ceb89e10b7 Add 2021 day 8 puzzles
Part two needs a tidy-up which will come in a bit.

But this is how I got the correct answer.
2021-12-08 09:42:51 +00:00
9c515351b5 Add 2021 day 7 puzzles 2021-12-07 10:35:28 +00:00
8be9c6d37d Add 2021 day 6 puzzles 2021-12-06 07:52:06 +00:00
71453e98ce Add 2021 day 5 puzzles 2021-12-05 09:11:05 +00:00
176d655e3c Add 2021 Day 4 puzzles 2021-12-04 08:04:02 +00:00
b6213c6593 Tidy up 2021 day 3 puzzle 2 code.
This adds some comments and removes code duplication.
2021-12-03 12:32:15 +00:00
b43c4a617e Add 2021 day 3 puzzles 2021-12-03 12:22:03 +00:00
7ab7ecb00a Update 2021 sources to pass clang-tidy 2021-12-02 07:31:53 +00:00
cd5e2538df Add .clang-format and apply it 2021-12-02 07:18:16 +00:00
d9e1d2cf89 Add day 2 of 2021's puzzles. 2021-12-02 06:57:48 +00:00
51cec3ea26 Add day 1 of 2021's puzzles. 2021-12-01 20:56:22 +00:00