π - 2024 DAY 25 SOLUTIONS -π
Day 25: Code Chronicle
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
- What is this?: Here is a post with a large amount of details: https://programming.dev/post/6637268
- Where do I participate?: https://adventofcode.com/
- Is there a leaderboard for the community?: We have a programming.dev leaderboard with the info on how to join in this post: https://programming.dev/post/6631465
Haskell
A total inability to write code correctly today slowed me down a bit, but I got there in the end. Merry Christmas, everyone <3
C
Merry Christmas everyone!
:::spoiler Code
:::
https://codeberg.org/sjmulder/aoc/src/branch/master/2024/c/day25.c
Made the 1 second challenge with most of it to spare! π
Dart
Quick and dirty, and slightly tipsy, code.
Happy Christmas everyone!
Thanks to Eric and the team at Advent of Code, to @[email protected] and @[email protected] for giving us somewhere to share and discuss our solutions, and to everyone here for the friendly and supportive community.
See you all next year!
Uiua
A Christmas Day treat: a one-liner for you all to decipher!
Haskell
Merry Christmas!
Kotlin
A fun and small challenge. First read all locks, transpose their profile and count the
#s (-1 for the full row). Then do the same for the keys.Lastly find all keys for all locks that do not sum to more than 5 with their teeth:
::: spoiler Code
:::
Also on GitHub
Haskell
Have a nice christmas if you're still celebrating today, otherwise hope you had a nice evening yesterday.
Python3
ah well this year ends with a simple ~12.5 ms solve and not too much of a brain teaser. Well at least I got around to solving all of the challenges.
:::spoiler Code
:::
Congrats on reaching the finish line!
The bit that caught me out was that the key + lock should equal 5 in reality, instead of being up to 5 in the challenge.
Thanks! I quickly wrote it but didn't think to count things. I just took the index of where the edge was located at and ran with it.
So I don't understand what you mean by equal 5. Could you elaborate? Cause I must have read the challenge text differently.
For a real world lock, the key height + pin height must equal the height of the barrel exactly. If it is taller or shorter, the lock will bind and not open.
https://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/Pin_tumbler_no_key.svg/400px-Pin_tumbler_no_key.svg.png
For the challenge, as long as its not overlapping (too tall), its a valid key/lock pair.
Oh! I didn't think it that way, lol, I was thinking this quickly through. I didn't think of relating to physical locks because it clearly said it was virtual. But I guess, there could theoretically be a physical tumbler lock with 0-5 spacers, it would just be a tall lock. You know like how some master keys have it so that there are spacers for the master key or the client key to open the lock.
Javascript
Spent 10 minutes debugging my solution until I reread and found out they wanted the number of keys that fit, not the ones that overlapped. Reading comprehension is not it tonight.
Rust
Nice ending for this year. Lock and key arrays are just added together and all elements must be <= 5. Merry Christmas!
::: spoiler Solution
:::
Also on github