• [^] # Re: Jour 6

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

    Pour la partie 2, je transpose la matrice des données en inversant les X et les Y, en gros ça fait un miroir par la diagonale, pour lire dans l'autre sens.
    En ayant retiré la ligne d'opérateurs à la fin.
    Et après les nombres sont séparés par des lignes vides.
    C'est assez simple.

    from operator import mul, add
    data = sys.stdin.read().strip().splitlines()
    op=[{"+":add,"*":mul}[_] for _ in data[-1].split()]
    r=[0 if o==add else 1 for o in op]
    for l in data[:-1]:
     for i,v in enumerate(l.split()):
     r[i]=op[i](r[i],int(v))
    ex1=sum(r)
    d=[ # bascule de matrice
     "".join([l[j] for l in data[:-1]]).strip()
     for j in range(len(data[0]))
    ]
    i,r=0,[0 if o==add else 1 for o in op]
    for l in d:
     if not l:
     i+=1
     continue
     r[i]=op[i](r[i],int(l))
    ex2=sum(r)

    Prodigieusement peu lisible, mais assez concis :)

    • Yth.