18
๐ช - 2023 DAY 7 SOLUTIONS -๐ช
(programming.dev)
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.
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 |
Icon base by Lorc under CC BY 3.0 with modifications to add a gradient
console.log('Hello World')
Python
Oh boy. bitwise nonsense. Ok, can you explain it to me? I'm terrible at bitwise stuff.
Sure! This generates a number for every hand, so that a better hand gets a higher number. The resulting number will contain 11 hexadecimal digits:
The hand itself is 5 hexadecimal digits for every card, 0 for "2" to b for "ace".
This way the higher combination always has a higher number, and hands with the same combination are ordered by the order of the cards in the hand.
That is a really cool solution. Thanks for the explanation! I took a much more... um... naive path lol.
I think you have the same solution, basically, just the details are a bit different. I like how you handled the joker, I didn't realise you could just multiply your best streak of cards to get the best possible combination.
I didn't multiply the streak, I just took the jokers and added them to the highest hand already in the list. Is that not what you did? It looked the same to me.
This is what I meant, but I phrased it poorly :)
In my solution I reimplement the logic of identifying the hand value, but with the presence of joker (instead of just reusing the same logic).
Wow, this is exactly what I did, but in C#. That's cool.
Cool!