• # Python

    Posté par . En réponse au message Advent of Code 2023 : Day 9. Évalué à 1.

    Un exercice étonnamment simple aujourd'hui, mais les explications me semblent un peu embrouillées, est-ce fait exprès ?
    Quoi qu'il en soit, voici mon code :

    def parse_input(puzzle):
     r = []
     for p in puzzle:
     if p == "":
     continue
     p = p.split()
     p.reverse()
     r.append([int(i) for i in p])
     return r
    def parse_input_not_reversed(puzzle):
     r = []
     for p in puzzle:
     if p == "":
     continue
     r.append([int(i) for i in p.split()])
     return r
    def are_null(suite):
     for n in suite:
     if n != 0:
     return False
     return True
    def find_number(suite):
     suivant = []
     for i,n in enumerate(suite[:-1]):
     suivant.append(n-suite[i+1])
     if are_null(suivant):
     return suite[0]
     else:
     return find_number(suivant)+suite[0]
    def solve1(puzzle,testing=False):
     s=0
     for l in parse_input(puzzle):
     s += find_number(l)
     if testing:
     print(s)
     return s
    def solve2(puzzle,testing=False):
     s = 0
     for l in parse_input_not_reversed(puzzle):
     s += find_number(l)
     if testing:
     print(s)
     return s

    L'informatique n'est pas une science exacte, on n'est jamais à l'abri d'un succès