File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed
Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change 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 ())
You can’t perform that action at this time.
0 commit comments