Advent of Code 2025: 3

Entradas Archivos Wallpaper Problemas

Este problema consiste en encontrar el mayor numero menor a 100 en una serie de digitos, la regla es que el primer digito debe de estar antes del segundo digito en el numero dado

Solucion

Mi solucion fue iterar sobre el numero y buscar que numero es el mas grande, despues de que se encontro, seguir buscando por el segundo mas grande, si se encuentra uno más grande que el primero, lo reemplazamos y volvemos a buscar

total = 0
with open("./input.txt", "r") as f:
    lines = f.readlines()
    for line in lines:
        first_char = 0
        curr_index = 0
        max_num = 0
        le = len(line)
        for index, char in enumerate(line):
            if char == "\n":
                continue
            char = int(char)
            # print(char)
            if char > first_char:
                # print(f"el numero {char} es mayor que {first_char}")
                first_char = char
                curr_index = index
                second_char = 0
                for i in range(curr_index+1, le):
                    curr_char = line[i]
                    if curr_char == "\n":
                        break
                    curr_char = int(curr_char)
                    if curr_char > second_char:
                        second_char = curr_char
                        n_max_num = (first_char*10)+second_char
                        # print(f"el numero {second_char} encontrado")
                        if n_max_num > max_num:
                            max_num = n_max_num
        total += max_num

        # print(max_num)

print(total)