advent-of-code-2025/day-02/part-2.py

23 lines
553 B
Python

import aocd
import re
def parse(data):
for range_ in data.strip().split(','):
yield range_.split('-')
def num_invalid(low, high):
low_int, high_int = int(low), int(high)
for id in range(low_int, high_int+1):
if re.match(r'^((.+)\2+)$', str(id)):
yield int(id)
def main(data):
ranges = parse(data)
return sum(sum(num_invalid(*r)) for r in ranges)
if __name__ == '__main__':
solution = main(aocd.get_data(day=2, year=2025))
print(solution)
aocd.submit(solution, part='b', day=2, year=2025)