|
- import collections
-
-
- def strength(hand, order, J_swap='J'):
- counter = collections.Counter(hand.replace('J', J_swap))
- count = collections.Counter(counter.values())
- return [count[n] for n in [5, 4, 3, 2, 1]] + [order.index(k) for k in hand]
-
-
- text = open(0).read()
- data = [ln.split() for ln in text.splitlines()]
-
- order = '123456789TJQKA'
- hands = [(strength(hand, order), hand, score) for hand, score in data]
- print(sum(rank * int(score) for rank, (_, hand, score) in enumerate(sorted(hands), 1)))
-
- order = 'J123456789TQKA'
- hands = [(max(strength(hand, order, J_swap) for J_swap in order[1:]), hand, score) for hand, score in data]
- print(sum(rank * int(score) for rank, (_, hand, score) in enumerate(sorted(hands), 1)))
|