The instructions for part 2 are missing info about how to handle the Four Of A Kind and a joker case. Wasted quite some time because I assumed that the remaining joker would remain unused, but turns out it turns your deck into Five Of A Kind.

Did everybody else just expect this?

You are viewing a single thread.
View all comments
1 point
*

Here’s a (hopefully correct) solution (in Python) where a Five Of A Kind hand is not allowed:

Code
i = open('day7_in.txt')

from collections import Counter

card_values = {
    'A': 14,
    'K': 13,
    'Q': 12,
    'J': 0,
    'T': 10
}

deques = []

for line in i:
    if not line.strip():
        continue
    cards, bid = line.split()
    cards_repr = [int(card_values.get(card, card)) for card in cards]
    counts = Counter(card for card in cards if card != 'J')
    deque_type = [times for card, times in counts.most_common(5)]

    jokers_left = cards.count('J')
    for i in range(jokers_left):
        for j, n in enumerate(deque_type):
            if n < 4:
                deque_type[j] += 1
                jokers_left -= 1
                break
    if jokers_left:
        if jokers_left <= 4:
            deque_type.append(jokers_left)
        else:
            deque_type += [4, 1]
    deques.append((deque_type, cards_repr, int(bid), cards))

deques.sort()

ans = 0
for n, d in enumerate(deques, 1):
    ans += n*d[2]

print(ans)
permalink
report
reply

Advent Of Code

!advent_of_code@programming.dev

Create post

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

  • Follow the programming.dev instance rules
  • Keep all content related to advent of code in some way
  • If what youre posting relates to a day, put in brackets the year and then day number in front of the post title (e.g. [2024 Day 10])
  • When an event is running, keep solutions in the solution megathread to avoid the community getting spammed with posts

Relevant Communities

Relevant Links

Credits

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

console.log('Hello World')

Community stats

  • 1

    Monthly active users

  • 139

    Posts

  • 1.7K

    Comments