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

22 lines
586 B
Python

import aocd
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 map(str, range(low_int, high_int+1)):
if len(id) % 2: continue
if id[:len(id)//2] == id[len(id)//2:]:
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='a', day=2, year=2025)