21
๐ - 2024 DAY 8 SOLUTIONS -๐
(programming.dev)
An unofficial home for the advent of code community on programming.dev! Other challenges are also welcome!
Advent of Code is an annual Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like.
Everybody Codes is another collection of programming puzzles with seasonal events.
Solution Threads
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 |
Icon base by Lorc under CC BY 3.0 with modifications to add a gradient
console.log('Hello World')
Rust
Proper Point and Vector types made this pretty simple, part 2 was just a tiny change (basically
whileinstead ofif), but left with a lot of copy-pasted code.Solution
also on github
I also did it in Rust, though mine is quite a bit more verbose than yours :). https://gitlab.com/bricka/advent-of-code-2024-rust/-/blob/main/src/days/day08.rs?ref_type=heads
Have you considered using a
HashSet<(usize, usize)>to store the visited locations instead of a 2d vector?I try to use
Vecs instead ofHashSets and maps whenever the key domain is reasonably small (just the grid in this case), simply because in the end direct memory access is a lot faster than always hashing values.But looking at this case again, it is certainly a lot easier to have just
antinodes.len()at the end instead of counting all true values. This datastructure is also not really performance-critical, so aHashSetis probably the cleaner choice here.