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