Skip to content

Commit 37ab1d6

Browse files
committed
Completed day 7 of year 2025
1 parent dd7b372 commit 37ab1d6

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

2025/7.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
4+
split_data = True
5+
completed = True
6+
raw_data = None # Not To be touched
7+
8+
def part1(data):
9+
beams = set([data[0].index('S')])
10+
counter = 0
11+
for line in data[1:]:
12+
new_beams = set()
13+
for beam in beams:
14+
if line[beam] == '^':
15+
new_beams.add(beam-1)
16+
new_beams.add(beam+1)
17+
counter += 1
18+
else:
19+
new_beams.add(beam)
20+
beams = new_beams
21+
return counter
22+
23+
24+
def part2(data):
25+
beams = {data[0].index('S'): 1}
26+
for line in data[1:]:
27+
new_beams = {}
28+
for beam in beams:
29+
if line[beam] == '^':
30+
new_beams[beam-1] = new_beams.get(beam-1, 0) + beams[beam]
31+
new_beams[beam+1] = new_beams.get(beam+1, 0) + beams[beam]
32+
else:
33+
new_beams[beam] = new_beams.get(beam, 0) + beams[beam]
34+
beams = new_beams
35+
return sum(beams.values())

0 commit comments

Comments
 (0)