generated from public/aoc_template
day07
This commit is contained in:
parent
46f9d7067e
commit
553016c043
50
day07.py
Normal file
50
day07.py
Normal file
@ -0,0 +1,50 @@
|
||||
from tools.aoc import AOCDay
|
||||
from tools.coordinate import Coordinate
|
||||
from tools.grid import Grid
|
||||
from typing import Any
|
||||
|
||||
|
||||
class Day(AOCDay):
|
||||
inputs = [
|
||||
[
|
||||
(21, "input7_test"),
|
||||
(1703, "input7"),
|
||||
],
|
||||
[
|
||||
(40, "input7_test"),
|
||||
(171692855075500, "input7"),
|
||||
]
|
||||
]
|
||||
|
||||
def get_timeline_count(self, start: Coordinate, grid: Grid) -> int:
|
||||
if not grid.isWithinBoundaries(start):
|
||||
return 1
|
||||
|
||||
while not grid.get(start) and grid.isWithinBoundaries(start):
|
||||
start += (0, 1)
|
||||
|
||||
if not grid.isWithinBoundaries(start):
|
||||
return 1
|
||||
else:
|
||||
if start in self.DP:
|
||||
return self.DP[start]
|
||||
|
||||
self.SEEN.add(start)
|
||||
|
||||
ans = self.get_timeline_count(start + (-1, 0), grid) + self.get_timeline_count(start + (1, 0), grid)
|
||||
self.DP[start] = ans
|
||||
return ans
|
||||
|
||||
def part1(self) -> Any:
|
||||
grid = Grid.from_data(self.getInput(), translate={'.': False, '^': True})
|
||||
self.get_timeline_count(list(grid.find('S'))[0], grid)
|
||||
return len(self.SEEN)
|
||||
|
||||
def part2(self) -> Any:
|
||||
grid = Grid.from_data(self.getInput(), translate={'.': False, '^': True})
|
||||
return self.get_timeline_count(list(grid.find('S'))[0], grid)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
day = Day(2025, 7)
|
||||
day.run(verbose=True)
|
||||
142
inputs/input7
Normal file
142
inputs/input7
Normal file
@ -0,0 +1,142 @@
|
||||
......................................................................S......................................................................
|
||||
.............................................................................................................................................
|
||||
......................................................................^......................................................................
|
||||
.............................................................................................................................................
|
||||
.....................................................................^.^.....................................................................
|
||||
.............................................................................................................................................
|
||||
....................................................................^.^.^....................................................................
|
||||
.............................................................................................................................................
|
||||
...................................................................^.^.^.^...................................................................
|
||||
.............................................................................................................................................
|
||||
..................................................................^.^.^...^..................................................................
|
||||
.............................................................................................................................................
|
||||
.................................................................^...^.^.^.^.................................................................
|
||||
.............................................................................................................................................
|
||||
................................................................^.^.^...^.^.^................................................................
|
||||
.............................................................................................................................................
|
||||
...............................................................^.^...........^...............................................................
|
||||
.............................................................................................................................................
|
||||
..............................................................^.^.^.^.^.^.^...^..............................................................
|
||||
.............................................................................................................................................
|
||||
.............................................................^...^.^.^.^.^.^.^.^.............................................................
|
||||
.............................................................................................................................................
|
||||
............................................................^.^.^...^.^...^.^...^............................................................
|
||||
.............................................................................................................................................
|
||||
...........................................................^.^.^.^.^...^.^...^...^...........................................................
|
||||
.............................................................................................................................................
|
||||
..........................................................^...^.^.^.^.^...^.^.....^..........................................................
|
||||
.............................................................................................................................................
|
||||
.........................................................^...^.^.^...^...^.^.^.^.^.^.........................................................
|
||||
.............................................................................................................................................
|
||||
........................................................^.^.^...^.....^.^.^.^.^.....^........................................................
|
||||
.............................................................................................................................................
|
||||
.......................................................^.^.^.^.^.^.^.......^.^.^.....^.......................................................
|
||||
.............................................................................................................................................
|
||||
......................................................^...^.^...^...^.^.^.^.^.^.^...^.^......................................................
|
||||
.............................................................................................................................................
|
||||
.....................................................^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.....................................................
|
||||
.............................................................................................................................................
|
||||
....................................................^.^.^...^.^.....^.^.^.^.^.^.^.^...^.^....................................................
|
||||
.............................................................................................................................................
|
||||
...................................................^.^.^.^.^.^...^.^...^.^.^...^...^...^.^...................................................
|
||||
.............................................................................................................................................
|
||||
..................................................^.....^...^.^...^.^.........^.^.^.....^.^..................................................
|
||||
.............................................................................................................................................
|
||||
.................................................^.......^.^.^...^.^.^...^.^...^.^.^...^.^.^.................................................
|
||||
.............................................................................................................................................
|
||||
................................................^.^.^.^.^.^.^.^.....^...^.^...^.^.....^.^.^.^................................................
|
||||
.............................................................................................................................................
|
||||
...............................................^.....^.^.^...^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^...............................................
|
||||
.............................................................................................................................................
|
||||
..............................................^...^...^...^...^.....^.^.^.....^.^...^.^.^.^.^.^..............................................
|
||||
.............................................................................................................................................
|
||||
.............................................^.^.^.^.^.^...^...^.^.^.....^.^.^.^.^.^.^...^.^...^.............................................
|
||||
.............................................................................................................................................
|
||||
............................................^.^.^.^.^.^.....^.^.^...^.^.....^.^...^.^.^.....^.^.^............................................
|
||||
.............................................................................................................................................
|
||||
...........................................^.^...^.^.^...^.^.^.^.^.^.^.^...^.^...^.^.^.^.....^.^.^...........................................
|
||||
.............................................................................................................................................
|
||||
..........................................^.^.^.^.^.^.^.^...^.^.^.^...^.^.^...^.^.^.^.^.^.........^..........................................
|
||||
.............................................................................................................................................
|
||||
.........................................^.^.^.^.^.^.^...^.^.....^...^.^...^.^...^.^.^.^.^.^.^.^.^.^.........................................
|
||||
.............................................................................................................................................
|
||||
........................................^...^.......^.....^.^.^...^.^.^.^...^.^.^.^.^...^.^.^.....^.^........................................
|
||||
.............................................................................................................................................
|
||||
.......................................^.^.^...^.^...^.^.^.^.^.^.^.^.^.^.....^...^.^.^.^.^.^.^.^...^.^.......................................
|
||||
.............................................................................................................................................
|
||||
......................................^...^.^.^...^.^.^.^...^...^.^...^.^.^.^.^.^...^.^.....^.^.^.^.^.^......................................
|
||||
.............................................................................................................................................
|
||||
.....................................^.^.^.^.^...^...^.^...^...^.^.^.^.^.^.....^...^...^...^.^.^...^.^.^.....................................
|
||||
.............................................................................................................................................
|
||||
....................................^...^.^.^.^.^.^...^.^.^.^.^.^.^.^.^.^...^.^.^.^...^.^.^...^...^.....^....................................
|
||||
.............................................................................................................................................
|
||||
...................................^.^...^.^...^...^.^.....^.....^.....^.^.^.^.^.^.^.....^.^.^.^...^...^.^...................................
|
||||
.............................................................................................................................................
|
||||
..................................^.^...^.^.^...^.......^.^...^.^.^.^.^...^.^.^...^.^.^.....^.^.^.^.^.^.^.^..................................
|
||||
.............................................................................................................................................
|
||||
.................................^...^.^.....^.^.^.^.^.....^.^...^.^.^...^...^.^.^.^.^.^.^.^...^.^...^.^...^.................................
|
||||
.............................................................................................................................................
|
||||
................................^.^.^.^.^...^.^...^.^.^.^.^.^.^.......^.....^...^.^.^.^.^.^.^.^.^.....^.^.^.^................................
|
||||
.............................................................................................................................................
|
||||
...............................^...^.^...^...^...^.^.^.^.....^.....^.^.^.^.....^...^.^...^.^...^.^.^.^.^.^...^...............................
|
||||
.............................................................................................................................................
|
||||
..............................^.^.^.^...........^.^.^.^.^.^.^.^.^.^.^.^.^...^...^.^.^...^.^.^.^.^.^...^.^.^.^.^..............................
|
||||
.............................................................................................................................................
|
||||
.............................^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...^...^...^...^.^.....^...^.^.^.^...^.^.^.............................
|
||||
.............................................................................................................................................
|
||||
............................^.^...^.^.^.^.^.^.^.....^.........^.^.^.^.^...^.^...^.^...^.^.^.^.^.^...^.^.^...^.^.^............................
|
||||
.............................................................................................................................................
|
||||
...........................^.^...^.^.^.^.^.....^.........^.^.^.^.^.....^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^...^.^.^.^...........................
|
||||
.............................................................................................................................................
|
||||
..........................^.^...^.^...^...^.^.^.^...^.^...^.^...^.^.^.^.^.^.......^.^.^.^.^.^.^.^.^.^.^.....^...^.^..........................
|
||||
.............................................................................................................................................
|
||||
.........................^.....^.^.^.^.....^.^.^...^...^...^.^...^.^...^.^...^.^.....^.^.^...^.^.^.^.^...^.^.^.^...^.........................
|
||||
.............................................................................................................................................
|
||||
........................^.^.^...^.^.^...^.^...^.^...^.^.^.....^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.....^.^.^.^.^...^...^.^........................
|
||||
.............................................................................................................................................
|
||||
.......................^.^...^.^.^.^.^.^.^.^.......^...^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^...^.^.^...^.^.^.^...^.^.^.......................
|
||||
.............................................................................................................................................
|
||||
......................^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^...^.^.^.^.....^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.......^.^.^.^.^......................
|
||||
.............................................................................................................................................
|
||||
.....................^.^...^.^.^.^.^.....^.^.^.^.^...^.^.^.^.^.^...^.....^.^.^.^.^.^...^.^.....^...^.^.^.....^.^...^.^.^.....................
|
||||
.............................................................................................................................................
|
||||
....................^.^...^...^...^.....^.^.^.^.^...^...^.^.^.^.....^...^.^.^.^.^.^.^.^...^.^.^.^...^.^...^.....^.^.^.^.^....................
|
||||
.............................................................................................................................................
|
||||
...................^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^...^...^.^...^...^.^.^.^.^.^...^.....^.^...^.^.^.^.^.^.^.^.......^...................
|
||||
.............................................................................................................................................
|
||||
..................^.^.^.^...^.^.^.^.....^.^.^...^.^.^.^...^...^.^.^.^.^...^.^.^.....^.^.^.^.^.^...^...^.^.......^.^.^...^.^..................
|
||||
.............................................................................................................................................
|
||||
.................^.^.^.^.^.....^.^.^.^.^.^...^.^.^.^.^.^.^...^.......^.^.^.^.^...^.^.^.^...^.....^.^.^.^.^...^.^.^.^.....^.^.................
|
||||
.............................................................................................................................................
|
||||
................^.^.^...^.^.^.^.^.^.^.^.^.^.^.^...^.^...^.....^.^...^.^.^.^.........^.^.^...^.....^.^.^.....^.^...^.^.......^................
|
||||
.............................................................................................................................................
|
||||
...............^.^.^.^.^.^...^.^.^.....^.^.^...^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^.......^...^...^...^.^...^.^.^...^.^.^.^.^.^.^...............
|
||||
.............................................................................................................................................
|
||||
..............^.^.^.^.......^...^...^.^.^.^...^...^.^.^...^.^.^.......^.^.^...^...^.^.^...^...^.^.^.^.^...^.^.^.^.^.^...^...^.^..............
|
||||
.............................................................................................................................................
|
||||
.............^.^...^.^.^...^.^.^.^.^...^.^.^.^.....^.....^.^...^...^.^.^.^.^.^.^.^.^.^...^.....^.^.^.^.^.^.^.^...^.^...^...^...^.............
|
||||
.............................................................................................................................................
|
||||
............^.^.^...^.^.....^.^.^.....^...^.^...^...^.^.^.^...^.^...^.....^.......^.^.^.......^.^.^.^.^.^...^.^.....^.^.^.^.^.^.^............
|
||||
.............................................................................................................................................
|
||||
...........^.^.^...^.^.^.....^.^.^...^.^.^.....^.^...^...^.^.....^.^.^.^.^.^.^.^.....^.^.^.^.^...^.^...^.^.^.^.^.^.^.^...^.......^...........
|
||||
.............................................................................................................................................
|
||||
..........^.^.....^...^.^.^.......^.^.^.^.^.^.^.....^.^.^.^.^.^...^.^.^.^...^.^...^.^.....^.^.^.^.^...^...^.....^...^.^.^.^.^.^.^.^..........
|
||||
.............................................................................................................................................
|
||||
.........^.^.......^.^.^...^.^...^.^...^.^.^.^.^.^.^.^.^.....^...^.^.^.^...^.....^...^.^.^...^.^.^.^.^.^.^.^.^...^.^.^...^.^...^.^.^.........
|
||||
.............................................................................................................................................
|
||||
........^.^.^.^.^.......^.....^.^.^.^.^.^.....^.^.^.^.^...^.^.^.^.^...^.^...^.^...^.^.^...^.^.^.^.^.^.^.....^.^.^.^...^...^.....^.^.^........
|
||||
.............................................................................................................................................
|
||||
.......^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.....^.^.^.^.^...^.^...^.^.^.^.^...^.^.^.....^.^.^.^...^.^.^.....^...^.^...^.^...^.^.......
|
||||
.............................................................................................................................................
|
||||
......^.^.^.^.^.^.^.....^...^.^.^.....^...^...^...^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.....^.....^.^.^.^.^...^.^.^.^.^...^.^...^.^.^......
|
||||
.............................................................................................................................................
|
||||
.....^.^.^.......^.^.^.....^.....^.^.^.^.....^.......^.^.^.^...^.^.^.^.^.^...^.^.^.^.^.....^.^...^.^...^.^.^.^.....^.^.^.....^...^...^.^.....
|
||||
.............................................................................................................................................
|
||||
....^...^...^.^...^...^.^.^.^.....^.^...^.^.^.^.^.^.......^.^...^.^...^.....^.^.^.^.^.^.^.^.^.^...^.^.^.....^...^.^...^.^.^.^...^...^...^....
|
||||
.............................................................................................................................................
|
||||
...^.^.^.^.^.^...^.^.^...^.^.^.......^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^.....^...^.^.^.^.^.^.^.............^.^.^...^...^.^.......^.^...
|
||||
.............................................................................................................................................
|
||||
..^...^.^.^.^.^.^.^.^.^.......^.^.^.^...^...^.^.^.^.^.^.^.^.^.^.....^.^.^...^.....^.^.^.^.^.^.^.......^.^...^.^.^.^.^...^...^.^.^.......^.^..
|
||||
.............................................................................................................................................
|
||||
.^.^...^.^.^.^.^.^...^.^.^.^.^.^.^.^.....^...^.^.^...^.^.^.^.^...^.^.^.^...^.^.^.^.^.^.^...^.^.^...^.....^...^.......^.^.^...^.^...^...^.^.^.
|
||||
.............................................................................................................................................
|
||||
16
inputs/input7_test
Normal file
16
inputs/input7_test
Normal file
@ -0,0 +1,16 @@
|
||||
.......S.......
|
||||
...............
|
||||
.......^.......
|
||||
...............
|
||||
......^.^......
|
||||
...............
|
||||
.....^.^.^.....
|
||||
...............
|
||||
....^.^...^....
|
||||
...............
|
||||
...^.^...^.^...
|
||||
...............
|
||||
..^...^.....^..
|
||||
...............
|
||||
.^.^.^.^.^...^.
|
||||
...............
|
||||
Loading…
Reference in New Issue
Block a user