Retourner au contenu associé (entrée de forum : Advent of Code 2023 : Day 4)
Posté par Yth (Mastodon) le 05 décembre 2023 à 10:39. En réponse au message Advent of Code 2023 : Day 4. Évalué à 2.
J'aime bien, c'est assez propre et concis !
Je suis sur quelque chose de nettement moins abstrait, mais l'exercice du jour est assez simple je trouve.
import sys def read_element(winning, numbers): winning = set(int(x) for x in winning.strip().split(" ") if x) numbers = set(int(x) for x in numbers.strip().split(" ") if x) return winning, numbers def input(): for line in sys.stdin: game, elements = line.strip().split(':') game = int(game.split(" ")[-1].strip()) winning, numbers = read_element(*elements.strip().split("|")) i = numbers.intersection(winning) num = len(i) score = 2**(num - 1) if i else 0 yield game, num, score datas = [x for x in input()] r = sum(s for *_, s in datas) print(f"Score : {r}") winnings = {card: 1 for card, *_ in datas} for card, num, s in datas: wins = winnings[card] for i in range(card + 1, card + num + 1): winnings[i] += wins print(f"Total cards: {sum(winnings.values())}")
Et le calcul est immédiat aussi.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: En Python
Posté par Yth (Mastodon) . En réponse au message Advent of Code 2023 : Day 4. Évalué à 2.
J'aime bien, c'est assez propre et concis !
Je suis sur quelque chose de nettement moins abstrait, mais l'exercice du jour est assez simple je trouve.
Et le calcul est immédiat aussi.