Refactor 2023 for new system.
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import sys
|
||||
from collections import Counter, defaultdict
|
||||
from typing import Any, Iterator
|
||||
|
||||
from ..base import BaseSolver
|
||||
|
||||
|
||||
class HandTypes:
|
||||
@@ -32,18 +34,17 @@ def extract_key(hand: str, values: dict[str, int], joker: str = "0") -> tuple[in
|
||||
)
|
||||
|
||||
|
||||
lines = sys.stdin.read().splitlines()
|
||||
cards = [(t[0], int(t[1])) for line in lines if (t := line.split())]
|
||||
class Solver(BaseSolver):
|
||||
def solve(self, input: str) -> Iterator[Any]:
|
||||
lines = input.splitlines()
|
||||
cards = [(t[0], int(t[1])) for line in lines if (t := line.split())]
|
||||
|
||||
# part 1
|
||||
values = {card: value for value, card in enumerate("23456789TJQKA")}
|
||||
cards.sort(key=lambda cv: extract_key(cv[0], values=values))
|
||||
yield sum(rank * value for rank, (_, value) in enumerate(cards, start=1))
|
||||
|
||||
# part 1
|
||||
values = {card: value for value, card in enumerate("23456789TJQKA")}
|
||||
cards.sort(key=lambda cv: extract_key(cv[0], values=values))
|
||||
answer_1 = sum(rank * value for rank, (_, value) in enumerate(cards, start=1))
|
||||
print(f"answer 1 is {answer_1}")
|
||||
|
||||
# part 2
|
||||
values = {card: value for value, card in enumerate("J23456789TQKA")}
|
||||
cards.sort(key=lambda cv: extract_key(cv[0], values=values, joker="J"))
|
||||
answer_2 = sum(rank * value for rank, (_, value) in enumerate(cards, start=1))
|
||||
print(f"answer 2 is {answer_2}")
|
||||
# part 2
|
||||
values = {card: value for value, card in enumerate("J23456789TQKA")}
|
||||
cards.sort(key=lambda cv: extract_key(cv[0], values=values, joker="J"))
|
||||
yield sum(rank * value for rank, (_, value) in enumerate(cards, start=1))
|
||||
|
Reference in New Issue
Block a user