day 2
This commit is contained in:
parent
daa6077257
commit
5199074512
|
|
@ -0,0 +1,22 @@
|
||||||
|
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)
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
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)
|
||||||
Loading…
Reference in New Issue