Advent of code

 1er décembre 2025 

  Secret Entrance : Faire tourner une molette dans un sens ou l'autre et compter combien de fois elle passe devant le 0.
R27
   
R47
   
R21
   
L37
   
R5
   
L48
   
 
  1. code_bruteforce.py
  2. code_optim.py
START_POS = 50
MAX_ANGLE = 100

with open("input.txt", 'r', encoding='utf-8') as f:
    numbers = []
    for line in f.read().split():
        if line[0] == 'R':
            sign = 1
        elif line[0] == 'L':
            sign = -1
        else:
            print("Bad input line:", line)
            exit(1)
        numbers.append(sign * int(line[1:]))

    #numbers = [(1 if line[0]=='R' else -1)*int(line[1:]) for line in f.read().split()]


### Naive but effective way  ###
angle = START_POS
nb1 = 0
nb2 = 0
for val in numbers:
    for k in range(abs(val)):
        if val < 0:
            angle -= 1
        else:
            angle += 1
        angle %= MAX_ANGLE
        if angle == 0:
            nb2 += 1
    if angle == 0:
        nb1 += 1

print("Réponse partie 1:", nb1)
print("Réponse partie 2:", nb2)