This commit is contained in:
Holly McFarland 2025-12-08 18:00:49 -05:00
parent 92f17f3046
commit b311ad9fd4
2 changed files with 51 additions and 0 deletions

25
day-07/part-1.py Normal file
View File

@ -0,0 +1,25 @@
import aocd
def parse(data):
return filter(None, [set(x for x, c in enumerate(line) if c != '.') for line in data.strip().split('\n')])
def num_splits(manifold):
total = 0
beams, *rows = manifold
for row in rows:
for splitter in row:
if splitter in beams:
beams.remove(splitter)
beams |= {splitter-1, splitter+1}
total += 1
return total
def main(data):
return num_splits(parse(data))
if __name__ == '__main__':
solution = main(aocd.get_data(day=7, year=2025))
print(solution)
aocd.submit(solution, part='a', day=7, year=2025)

26
day-07/part-2.py Normal file
View File

@ -0,0 +1,26 @@
import aocd
import collections
def parse(data):
return filter(None, [set(x for x, c in enumerate(line) if c != '.') for line in data.strip().split('\n')])
def num_timelines(manifold):
timelines, *rows = manifold
timelines = collections.Counter(timelines)
for row in rows:
for splitter in row:
if splitter in timelines:
timelines[splitter-1] += timelines[splitter]
timelines[splitter+1] += timelines[splitter]
del timelines[splitter]
return sum(timelines.values())
def main(data):
return num_timelines(parse(data))
if __name__ == '__main__':
solution = main(aocd.get_data(day=7, year=2025))
print(solution)
aocd.submit(solution, part='b', day=7, year=2025)