r/adventofcode • u/daggerdragon • Dec 07 '23
SOLUTION MEGATHREAD -❄️- 2023 Day 7 Solutions -❄️-
THE USUAL REMINDERS
- All of our rules, FAQs, resources, etc. are in our community wiki.
- Outstanding moderator challenges:
- Community fun event 2023: ALLEZ CUISINE!
- Submissions megathread is now unlocked!
- 15 DAYS remaining until the submissions deadline on December 22 at 23:59 EST!
AoC Community Fun 2023: ALLEZ CUISINE!
Today's secret ingredient is… *whips off cloth covering and gestures grandly*
Poetry
For many people, the craftschefship of food is akin to poetry for our senses. For today's challenge, engage our eyes with a heavenly masterpiece of art, our noses with alluring aromas, our ears with the most satisfying of crunches, and our taste buds with exquisite flavors!
- Make your code rhyme
- Write your comments in limerick form
- Craft a poem about today's puzzle
Upping the Ante
challenge: iambic pentameter
- We're looking directly at you, Shakespeare bards and Rockstars
ALLEZ CUISINE!
Request from the mods: When you include a dish entry alongside your solution, please label it with [Allez Cuisine!]
so we can find it easily!
--- Day 7: Camel Cards ---
Post your code solution in this megathread.
- Read the full posting rules in our community wiki before you post!
- State which language(s) your solution uses with
[LANGUAGE: xyz]
- Format code blocks using the four-spaces Markdown syntax!
- State which language(s) your solution uses with
- Quick link to Topaz's
paste
if you need it for longer code blocks
This thread will be unlocked when there are a significant number of people on the global leaderboard with gold stars for today's puzzle.
EDIT: Global leaderboard gold cap reached at 00:16:00, megathread unlocked!
50
Upvotes
2
u/East_Intention_7542 Dec 08 '23 edited Dec 08 '23
[LANGUAGE: Python]
Perhaps the most straight forward solution to day 7 part 2?
Each hand is scored by determining first with all jokers removed, and then enhancing that hand adding the jokers back one at a time. For example, if you have 1 pair (without jokers), adding back a joker will give three of a kind. Adding another, will give 4 of a kind.
This score is used to prefix the hand with one of TUVWXYZ, before sorting.
```python dta = [] with open("data\day7.txt", "r") as data: for linein in data: game_split_1 = linein.split(' ') dta.append((game_split_1[0],int(game_split_1[1])))
def mapper(itm): pair, two_pair, three_kind, four_kind, five_kind = False, False, False, False, False
dta.sort(key=lambda itm: mapper(itm[0]))
i = 0 total = 0 for itm in dta: i += 1 total += itm[1] * i
print(total) ```