• [^] # Re: Besoin d'énumérations ordonnées

    Posté par (Mastodon) . En réponse au message Advent of Code 2023, day 7. Évalué à 2.

    Et en rajoutant deux lignes tu peux les utiliser dans des Set, ou en clé de dictionnaires etc :

     def __hash__(self):
     return self.weight

    Avec ça je n'ai quasiment rien à changer dans mon algorithme pour utiliser cette classe à la place des caractères "23456789abcdef" comme je l'ai fait dans ma solution.

    J'aime bien l'élégance de la chose, et le côté vraiment lisible, zéro hack dans le reste du code.
    Bon, par contre je n'ai besoin que de Card.JOKER de façon explicite.
    Il faut juste faire un line.replace(Card.JACK.value, Card.JOKER.value pour la seconde partie de l'exercice, à la place des a.translate(str.maketrans("TJQKA", "a0cde")), c'est plus joli.

    Je perd un poil en perfs par contre : 85ms au lieu de 70ms.
    Je suppose que c'est au niveau de la comparaison d'un tuple de Card par rapport à celle de deux str dans mon code initial.
    Pas très sûr, mais c'est dommage...

    • Yth.