mirror of
https://github.com/plasmaofthedawn/2023adventofcode.git
synced 2024-10-18 08:16:25 -05:00
19 lines
1.4 KiB
Python
19 lines
1.4 KiB
Python
print(
|
|
sum([a * (c + 1) for c, (_, a) in enumerate(sorted( # sort by hand value and payout bets according to rank
|
|
[(sum([ # total hand value
|
|
[max(
|
|
13**5 * 6 if 5 in d else 0, # five of a kind
|
|
13**5 * 5 if 4 in d else 0, # four of a kind
|
|
13**5 * 4 if 3 in d and 2 in d else 0, # full house
|
|
13**5 * 3 if 3 in d else 0, # three of a kind
|
|
13**5 * 2 if list(d).count(2) == 2 else 0, # two pair
|
|
13**5 if 2 in d else 0 # pair
|
|
) for d in [{k: b.count(k) for k in b}.values()]][0], # total type value (value from the type of hand)
|
|
sum([13**(4 - e) * '23456789TJQKA'.index(a) for e, a in enumerate(b)]) # total card value (value from the type of card)
|
|
]), int(v)) # makes an array of form (total hand value, bet)
|
|
for b, v in [x.split(' ') for x in open('resources/day7.txt').read().split("\n")] # reads file split on \n
|
|
]
|
|
))])
|
|
)
|
|
|
|
#sum([a * (c + 1) for c, (_, a) in enumerate(sorted([(sum([[max(13**5 * 6 if 5 in d else 0, 13**5 * 5 if 4 in d else 0, 13**5 * 4 if 3 in d and 2 in d else 0, 13**5 * 3 if 3 in d else 0, 13**5 * 2 if list(d).count(2) == 2 else 0, 13**5 if 2 in d else 0) for d in [{k: b.count(k) for k in b}.values()]][0], sum([13**(4 - e) * '23456789TJQKA'.index(a) for e, a in enumerate(b)])]), int(v)) for b, v in [x.split(' ') for x in open('resources/day7.txt').read().split("\n")]]))]) |