aoc2025/day03.py
2025-12-03 06:31:41 +01:00

48 lines
1.1 KiB
Python

from tools.aoc import AOCDay
from typing import Any
class Day(AOCDay):
inputs = [
[
(357, "input3_test"),
(17109, "input3"),
],
[
(3121910778619, "input3_test"),
(169347417057382, "input3"),
]
]
def solve(self, turn_on_count: int) -> int:
ans = 0
for line in self.getInput():
nums = list(map(int, line))
digits = []
min_index = 0
for i in range(turn_on_count):
if i < turn_on_count - 1:
this_digit = max(nums[min_index:-(turn_on_count-1-i)])
else:
this_digit = max(nums[min_index:])
digits.append(this_digit)
min_index = nums[min_index:].index(this_digit) + min_index + 1
ans += int("".join(map(str, digits)))
return ans
def part1(self) -> Any:
return self.solve(2)
def part2(self) -> Any:
return self.solve(12)
if __name__ == '__main__':
day = Day(2025, 3)
day.run(verbose=True)