Aller au contenu

Advent of Code 2017

Entraînement · Advent of Code 2017 · Python

Cours : Arbres · Graphes · Piles et files · Interprète

Dépôt : advent-of-code-2017

Vue d'ensemble

Jour Nature du problème Méthode Notions du cours Solution
1 Comparer chaque chiffre d'une liste circulaire à un autre indice modulo la longueur Arithmétique modulaire, accumulateur Python
2 Somme de contrôle calculée ligne par ligne double boucle sur les paires Boucles imbriquées Python
3 Coordonnées dans une spirale, puis spirale de sommes formule par anneau, dictionnaire des valeurs Dictionnaires, grilles Python
4 Phrases sans mot répété, puis sans anagrammes comparaison de représentations des mots Ensembles Python
5 Suivre des sauts qui modifient leur propre décalage simulation sur une liste Variant de boucle Python
6 Redistribuer jusqu'à revoir une configuration dictionnaire état → date, détection de cycle Dictionnaires Python
7 Racine d'un arbre, puis le poids qui le déséquilibre racine = non-fils, récursion postfixe Arbres, parcours récursif Python
8 Registres modifiés sous condition dictionnaire de registres, eval du test Interprète Python
9 Flux de groupes imbriqués et de passages ignorés pile de caractères, analyse récursive Piles, descente récursive Python
10 Hachage par retournements successifs dans un cercle liste circulaire doublement chaînée Listes chaînées Python
11 Distance sur une grille hexagonale coordonnées décalées, formule de distance Géométrie discrète Python
12 Groupes de programmes reliés entre eux DFS récursif, comptage de composantes Composantes connexes Python
13 Traverser des scanners périodiques sans être vu simulation, puis congruences Arithmétique modulaire Python
14 Grille de bits issue de hachés, puis régions hachage du jour 10, remplissage par DFS Flood fill, composantes connexes Python
15 Comparer deux générateurs pseudo-aléatoires simulation directe, 16 bits de poids faible Arithmétique modulaire Python (partie 1)
16 Permutations répétées d'une file de danseurs mémoriser les états, période Listes, détection de cycle Python
17 Insertions dans un tampon circulaire deque, puis suivre une seule position Files, complexité Python
18 Deux programmes qui communiquent par messages deux interprètes et deux files, détection d'interblocage Files, producteurs-consommateurs Python
19 Suivre un tracé dans une grille marche guidée par les caractères Grilles Python
20 Particules en mouvement et collisions simulation pas à pas, seuil d'arrêt Dictionnaires, simulation Python
21 Agrandir une image par règles de motifs huit symétries du carré, découpage en blocs Matrices, symétries Python
22 Fourmi de Langton à deux puis quatre états grille infinie dans un defaultdict Automates cellulaires Python
23 Comprendre un programme assembleur trop lent interprète, puis traduction à la main Interprète, arithmétique Python
24 Construire le pont le plus solide avec des pièces énumération exhaustive en largeur Parcours en largeur, recherche exhaustive Python
25 Simuler une machine de Turing table de transitions, ruban dans un defaultdict Modèles Turing-complets, dictionnaires Python

Jour 7 — Recursive Circus

Énoncé : adventofcode.com/2017/day/7

Jour 9 — Stream Processing

Énoncé : adventofcode.com/2017/day/9

Jour 12 — Digital Plumber

Énoncé : adventofcode.com/2017/day/12

Jour 18 — Duet

Énoncé : adventofcode.com/2017/day/18