• [^] # Re: Jour 4

    Posté par (Mastodon) . En réponse au journal Advent of Code 2025. Évalué à 3.

    Jour 4 : pour des raisons personnelles, aucun accès à un ordinateur de la journée. Mais une balade, fairphone à la main.
    Armé de mon qpython, je code...
    Ici, pas de noms de variables explicites, parce que écrire sur un clavier tactile, c'est chiant, donc moins on écrit, mieux on se porte.
    Ici, un classique, pour tester les 8 directions, on définit une carte en ayant ajouté une bordure vide autour, qu'on bascule en 1 dimension, avec huit déplacements entiers.

    data = data.strip().splitlines()
    H = len(data)+2
    W = len(data[0])+2
    map = " "*W + "".join(f" {x} " for x in data) + " "*W
    dirs=[-1,1,-W,W,-W-1,-W+1,W-1,W+1]
    def count(p):
     return sum(1 for d in dirs if map[p+d]=="@")
    def step():
     r=[i for i,x in enumerate(map) if x=="@" and count(i)<4]
     m="".join(x if i not in r else " " for i,x in enumerate(map))
     return m,len(r)
    map,n=step()
    ex2=ex1=n
    while n:
     map,n=step()
     ex2+=n

    Durée difficile à évaluer, c'est lent en qpython, zéro chance de brute force.
    On est à 3s environ, donc l'algo est assez bon 😉

    • Yth.