• [^] # Re: Un bug que j'ai résolu sans jamais le trouver.

    Posté par . En réponse au message Avent du Code, jour 20. Évalué à 3.

    Pour moi, pas de modelisation en classes aujourd'hui.
    Le truc qui m'a pris du temps c'est de realiser qu'il y avait plusieurs fois les memes valeurs dans les donnees reelles. J'ai resolu ca au plus vite en stockant une liste de tuples (valeur, rang d'apparition de cette valeur).

    is_part_2 = True
    original_sequence = []
    with open("2022/input_files/day20") as f:
     for data in f:
     n = int(data.rstrip()) * (811589153 if is_part_2 else 1)
     c = [x[0] for x in original_sequence].count(n)
     original_sequence.append((n, c))
    sequence = original_sequence.copy()
    for _ in range(10 if is_part_2 else 1):
     for n, occurence in original_sequence:
     old_index = sequence.index((n, occurence))
     new_index = (old_index + n) % (len(sequence) - 1)
     if new_index == 0:
     new_index = len(sequence) - 1
     sequence.insert(new_index, sequence.pop(old_index))
    i0 = sequence.index((0, 0))
    a = (i0 + 1000) % len(sequence)
    b = (i0 + 2000) % len(sequence)
    c = (i0 + 3000) % len(sequence)
    print(f"{sequence[a][0]+sequence[b][0]+sequence[c][0]=}")

    Excusez l'absence d'accents dans mes commentaires, j'habite en Australie et n'ai pas de clavier francais sous la main.