day 7
This commit is contained in:
parent
92f17f3046
commit
b311ad9fd4
|
|
@ -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)
|
||||
|
|
@ -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)
|
||||
Loading…
Reference in New Issue