• [^] # Re: Python sans brûlage de CPU ni explosion de RAM

    Posté par . En réponse au message [Doublon] Advent of Code 2023 : Day 5. Évalué à 1.

    Au début, je m'étais dit naïvement :

    Faisons un dictionnaire qui indiquera toutes les valeurs à modifier pour passer du début à la fin, en lui appliquant toutes les étapes, pour toutes les valeurs qui peuvent être modifiée. !

    Après m'être fait rappeler à l'ordre par mon OOM Killer, j'ai mis en place une solution plus simple qui applique directement les modifications aux numéros de graine et se souvenant s'il a déjà modifié cette valeur (pour éviter de changer 3 fois par étape les numéros).

    La partie 2 m'a donnée beaucoup plus de fil à retordre, car ce n'est pas simplement :

    Bon bah je génère une liste avec tous les numéros des graines et hop ! je les passe à la même fonction que la partie 1 !

    Mais l'OOM Killer proteste encore une fois, m'obligeant à finalement essayer de gérer des intervalles plutôt que des valeurs. Après beaucoup de débuggage et d'arrachage de cheveux, j'ai fini par trouver la recette qui s'exécute instantanément.

    L'informatique n'est pas une science exacte, on n'est jamais à l'abri d'un succès