this post was submitted on 19 Dec 2024
8 points (78.6% liked)

Advent Of Code

995 readers
4 users here now

An unofficial home for the advent of code community on programming.dev!

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.

AoC 2024

Solution Threads

M T W T F S S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25

Rules/Guidelines

Relevant Communities

Relevant Links

Credits

Icon base by Lorc under CC BY 3.0 with modifications to add a gradient

console.log('Hello World')

founded 1 year ago
MODERATORS
 

Day 19 - Linen Layout

Megathread guidelines

  • Keep top level comments as only solutions, if you want to say something other than a solution put it in a new post. (replies to comments can be whatever)
  • You can send code in code blocks by using three backticks, the code, and then three backticks or use something such as https://topaz.github.io/paste/ if you prefer sending it through a URL

FAQ

you are viewing a single comment's thread
view the rest of the comments
[โ€“] CameronDev 2 points 2 weeks ago (1 children)

How fast was the regex approach?

[โ€“] Gobbel2000 3 points 2 weeks ago (1 children)

About 3ms. A manual implementation might be a bit faster, but not by much. The regex crate is quite optimized for pretty much these problems.

[โ€“] CameronDev 2 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Wow, that is very fast, nice. I was happy with 120ms, seems I'm leaving a lot of performance on the table.

Edit: Regex cut my total time in half, but I am measuring the whole execution, still a massive improvement.

[โ€“] Gobbel2000 3 points 2 weeks ago (1 children)

The 3ms are for part 1 only, part 2 takes around 27ms. But I see that our approaches there are very similar. One difference that might make an impact is that you copy the substrings for inserting into the hashmap into Strings.

[โ€“] CameronDev 2 points 2 weeks ago* (last edited 2 weeks ago)

Removing the string copy with the length->count array from @sjmulder saved me 20ms, so not super significant. I'll have to play the the profiler and see what I am doing wrong.

I think your approach looks a lot more Rust-like, which I like. Part 1 in 4 lines is very nice.