Aller au contenu

Advent of Code 2016

Entraînement · Advent of Code 2016 · Python

Cours : Graphes · Files · Récursivité · Recherche par force brute

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

Vue d'ensemble

Jour Nature du problème Méthode Notions du cours Solution
1 Marche sur une grille avec virages, premier point revisité direction modulo 4, liste des positions Grilles, arithmétique modulaire Python
2 Déplacements sur un clavier, carré puis en losange position bornée dans une grille de caractères Tableaux à deux dimensions Python
3 Compter les triplets qui forment un triangle inégalité triangulaire, lecture par colonnes Instruction conditionnelle Python
4 Vérifier une somme de contrôle, puis déchiffrer des noms expression régulière, tri par fréquence, chiffre de César Expressions régulières Python
5 Construire un code à partir de hachés MD5 force brute sur MD5 Force brute Python
6 Caractère le plus ou le moins fréquent par colonne comptage par colonne et tri Dictionnaires Python
7 Motifs à l'intérieur et à l'extérieur de crochets découpage récursif, fenêtres glissantes Récursivité, recherche dans un texte Python
8 Rotations de lignes et colonnes d'un petit écran simulation, indices modulo la taille Rotation d'une file Python
9 Longueur d'un texte décompressé, puis décompression imbriquée pile de caractères, puis longueur récursive sans décompresser Piles, récursivité Python
10 Robots qui se passent des jetons selon des règles propagation jusqu'au point fixe Graphes orientés, simulation Python
11 Transporter des objets entre étages sous contrainte BFS sur les états du casse-tête Parcours en largeur Python
12 Exécuter un programme pour une machine à quatre registres interprète Interprète Python
13 Plus court chemin dans un labyrinthe défini par une formule BFS sur grille implicite Parcours en largeur Python
14 Clés repérées par des motifs dans des hachés successifs fenêtre glissante de 1000 hachés dans une file Files Python
15 Instant où des disques tournants sont tous alignés recherche linéaire sur des congruences Arithmétique modulaire Python
16 Courbe du dragon, puis somme de contrôle par réductions doublement de chaîne, réduction par paires Complexité Python
17 Chemins dans une petite grille dont les portes dépendent d'un haché BFS sur (position, chemin) Parcours en largeur Python
18 Lignes successives d'un automate cellulaire à une dimension règle locale sur trois cases Automate cellulaire Python
19 Élimination en cercle (variante de Josèphe) deux files pour les deux moitiés du cercle Files Python
20 Entiers non couverts par une liste d'intervalles soustraction d'intervalles Droite de balayage Python
21 Brouiller une chaîne par des opérations, puis défaire le brouillage simulation, inversion des opérations Listes Python
22 Déplacer une donnée dans une grille de nœuds de stockage taquin : BFS successifs sur la case vide Parcours en largeur Python
23 Assembleur auto-modifiant interprète avec raccourci de multiplication Interprète Python
24 Visiter tous les points marqués d'un plan BFS entre points, puis permutations Parcours en largeur, optimisation exhaustive Python
25 Plus petite entrée pour laquelle un programme émet un signal alterné interprète et essais successifs Interprète, problème de l'arrêt Python

Jour 9 — Explosives in Cyberspace

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

Jour 11 — Radioisotope Thermoelectric Generators

Énoncé : adventofcode.com/2016/day/11

Jour 19 — An Elephant Named Joseph

Énoncé : adventofcode.com/2016/day/19

Jour 24 — Air Duct Spelunking

Énoncé : adventofcode.com/2016/day/24