Le premier d'une série de 25 forums qui proposeront de partager vos solutions pour l'édition 2023 de l'Advent of Code.
Vous pouvez vous inscrire à un leadboard privé que j'ai créé pour LinuxFR : 2423220-c94050af
Jour 1 (résumé) :
Partie 1
Les petits lutins vont vous envoyer voir oĂč la production de neige a des problĂšmes, et utilisent pour cela un trĂ©buchet.
Pour cela, ils ont besoin des valeurs de calibrations écrites dans un document qui a été « amélioré » par un jeune lutin.
Le document se présente ainsi :
1abc2
pqr3stu8vwx
a1b2c3d4e5f
treb7uchet
Pour obtenir les valeurs de calibration, il suffit de combiner le premier et le dernier chiffre de chaque ligne pour obtenir un nombre Ă deux chiffres. Les valeurs qui correspondent Ă cet exemple sont 12,38,15,77. La solution est la somme de ses chiffres, soit 142.
Partie 2
C'Ă©tait trop simple, en fait les chiffres Ă©crits en lettre comptent aussi.
Par exemple :
two1nine
eightwothree
abcone2threexyz
xtwone3four
4nineeightseven2
zoneight234
7pqrstsixteen
Donne les valeurs 29,83,13,24,42,14,76, pour une somme de 281.
# Premier jour : on n'optimise pas, on fonce dans l'tas !
PostĂ©Â par Yth (Mastodon) . ĂvaluĂ©Â Ă Â 2.
Le premier exercice est trivial :
On fait
python3 01.py < 01.input
ou01.demo
pour les données de test, et hop, résultat en une commande.Le second exercice sans optimisation consiste à rechercher les chiffres et les chiffres écrits, ajouter ça dans une liste, et faire pareil :
La fonction analyze prend une ligne, la parcours charactÚre par charactÚre, et regarde si c'est un chiffre, ou l'écriture d'un chiffre, et envoie dans l'itérateur.
Zéro intelligence, zéro optimisation, zéro plantage.
BientÎt on pourra plus faire comme ça !
Mais bon, jour 1, on se dĂ©rouille les neurones, on reprend le pli des traitements de flux, on essaie dĂ©jĂ de mettre des itĂ©rateurs plutĂŽt que de tout traiter en mĂ©moire, juste pour reprendre les futurs bonnes habitudesâŠ
# Python
PostĂ©Â par alberic89 đ§ . ĂvaluĂ©Â Ă Â 1.
Ma solution :
AprÚs quelques essais en remplaçant avant de traiter, je me suis rendu compte que le plus simple était de reprendre intégralement la logique de la partie 1 en vérifiant une chaine plutÎt qu'un nombre.
Et c'est plutĂŽt propre.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Python
PostĂ©Â par BenoĂźt Sibaud (site web personnel) . ĂvaluĂ©Â Ă Â 4.
Et pour 0 et zéro ? (Nb : je n'ai pas essayé de faire l'exercice, je regardais juste les 2 réponses fournies ici et leurs différences)
[^] # Re: Python
PostĂ©Â par Yth (Mastodon) . ĂvaluĂ©Â Ă Â 2.
"zero" n'est pas dans les données, mais l'ajouter chez moi permet d'avoir la correspondance entre les textes et les index de la liste Python qui commence à 0.
C'est une optimisation facile de lisibilité on va dire.
Par ailleurs, j'ai codé sans regarder les données justement, donc en fait je ne savais pas que le zéro était inutilisé.
Dans l'idĂ©e, il aurait pu l'ĂȘtre.
[^] # Re: Python
PostĂ©Â par alberic89 đ§ . ĂvaluĂ©Â Ă Â 2.
J'ai vérifié avant et avait fais quelques tests dans la premiÚre partie, il n'y a pas de zéro. Et si c'était le cas, il suffirait d'ajouter une ligne au dictionnaire.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
Suivre le flux des commentaires
Note : les commentaires appartiennent Ă celles et ceux qui les ont postĂ©s. Nous nâen sommes pas responsables.