From 84fe8156a04876cad5f7201e34b3f957230d485e Mon Sep 17 00:00:00 2001 From: Andrew Ekstedt Date: Sun, 7 Dec 2025 08:11:12 +0000 Subject: [PATCH] day 7 part 1 --- day07/input | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++ day07/sample | 16 ++++++ day07/sol.py | 25 +++++++++ 3 files changed, 183 insertions(+) create mode 100644 day07/input create mode 100644 day07/sample create mode 100644 day07/sol.py diff --git a/day07/input b/day07/input new file mode 100644 index 0000000..43c81ba --- /dev/null +++ b/day07/input @@ -0,0 +1,142 @@ +......................................................................S...................................................................... +............................................................................................................................................. +......................................................................^...................................................................... +............................................................................................................................................. +.....................................................................^.^..................................................................... +............................................................................................................................................. +....................................................................^...^.................................................................... +............................................................................................................................................. +...................................................................^.^...^................................................................... +............................................................................................................................................. +..................................................................^.....^.^.................................................................. +............................................................................................................................................. +.................................................................^.^.^.^.^.^................................................................. +............................................................................................................................................. +................................................................^.^.^...^.^.^................................................................ +............................................................................................................................................. +...............................................................^.^.^.^.^.^.^.^............................................................... +............................................................................................................................................. +..............................................................^.^.^.^.^.....^.^.............................................................. +............................................................................................................................................. +.............................................................^.^.^.^.^.^.^.^.^.^............................................................. +............................................................................................................................................. +............................................................^.^.....^.^.^.^.^.^.^............................................................ +............................................................................................................................................. +...........................................................^...^.^...^.^.^...^.^.^........................................................... +............................................................................................................................................. +..........................................................^.^.^.^.^.^...^.^.^...^.^.......................................................... +............................................................................................................................................. +.........................................................^...^.....^.^...^.^.^.^.^.^......................................................... +............................................................................................................................................. +........................................................^.^...^.^...^.^.^.^.^.^...^.^........................................................ +............................................................................................................................................. +.......................................................^...^.^...^.^...^.^...^.....^.^....................................................... +............................................................................................................................................. +......................................................^...^...^.^...^.^.^.^.^.^.^.^...^...................................................... +............................................................................................................................................. +.....................................................^.^.^.^.^.^.^...^.^.^.^...^.^.^.^.^..................................................... +............................................................................................................................................. +....................................................^.^.^...^.^...^.^...^.^.^.^.^.^.^...^.................................................... +............................................................................................................................................. +...................................................^.^.^.^.^.^.^...^.^.^.^.^.^.....^.^.^.^................................................... +............................................................................................................................................. +..................................................^.^...^.^.^.....^...^...^.^...^.^...^...^.................................................. +............................................................................................................................................. +.................................................^.......^.^.^.....^.^.^.^.^.^.^.^...^...^.^................................................. +............................................................................................................................................. +................................................^...^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^................................................ +............................................................................................................................................. +...............................................^.^.....^.^.^.^...^.^.^.^.^...^...^...^.^.....^............................................... +............................................................................................................................................. +..............................................^...^...^.^.^...^...^.....^.^.......^.....^.....^.............................................. +............................................................................................................................................. +.............................................^.^.^.....^.^.....^.^.....^.......^.^.^.^.^.^.^.^.^............................................. +............................................................................................................................................. +............................................^.^.....^.^.^.........^.^...^.^...^...^.^.^.^...^...^............................................ +............................................................................................................................................. +...........................................^.^.....^.......^.^.^...^.^.^.^.^.^.^.....^...^.^...^.^........................................... +............................................................................................................................................. +..........................................^.^.....^.^.^.^...^.^...^.^.^.^.^.^.^.....^.^.^...^...^.^.......................................... +............................................................................................................................................. +.........................................^.^.....^.^.......^.........^.^.^.^...^.^.^.^...^.^.....^.^......................................... +............................................................................................................................................. +........................................^.^.^.^...^...^...^.^.^.^.^.^.^.^.^.^...^.....^.^.^.^.^.^...^........................................ +............................................................................................................................................. +.......................................^.....^.^.^.......^.^...^.....^.^.^...^...^.^.^.^.^.^.^.^.^...^....................................... +............................................................................................................................................. +......................................^.^.....^...^.^.^.^.^...^.^.^.....^.^.....^.^.^.^.^...^.^.^.^...^...................................... +............................................................................................................................................. +.....................................^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^...^.^.........^.^.^..................................... +............................................................................................................................................. +....................................^.^.^.^.^.^.^.^.^.....^.^.^...^...^...^.^.....^.^.^...^.^...^...^.^.^.................................... +............................................................................................................................................. +...................................^.^.....^.^.^...^...^.^...^...^.......^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^................................... +............................................................................................................................................. +..................................^.^.^.^.^.^.^.^.^.^...^.^...^...^.^.^.^.^.^.^.^.....^.^.^...^.....^.^...^.................................. +............................................................................................................................................. +.................................^.^.^.^.......^...^.^.^...^.^.^.....^.^...^.^.^.^...^.^.^.^...^.^.^.^...^.^................................. +............................................................................................................................................. +................................^.^.^.........^.^...^.^...^.^.^.^.^...^.^...^.^.....^...^.^.^...^...^.^...^.^................................ +............................................................................................................................................. +...............................^.....^.^.....^.^.^.^.....^.^.^.^.^.^.^.^.^.....^.....^.^...^.....^.^.^.^.^.^.^............................... +............................................................................................................................................. +..............................^.^.^.^.^.^.....^.^.^.^.^.....^.^.^.^.^.^.....^...^.^...^.^.^.^.^.^.^...^.^.^...^.............................. +............................................................................................................................................. +.............................^...^...^.^.^.^...^.^.......^.^...^...^.^...^.^.^.^...^...^.^.^.....^.^.^...^.^.^.^............................. +............................................................................................................................................. +............................^...^.^...^.^.^.^...^.^...^...........^.^.^.^.^.^.....^.^.^.^.^.^.^.^.^...^.....^.^.^............................ +............................................................................................................................................. +...........................^.^...^.^.^...^.^.^.^.^.^.^.^.....^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^.^........................... +............................................................................................................................................. +..........................^.^.^...^.^...^.^.^...^...^.^.^.^.^...^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^...^.^.^.....^.^.^.......................... +............................................................................................................................................. +.........................^...^...^.^.^.^.^...^...^.......^.^...^.^...^.^.^...^.^.^.^...^.^.^.^...^.^...^.^...^.^.^.^......................... +............................................................................................................................................. +........................^.^.^.^.^.^.^...^...^.^.^...^.^.^.^.^.^...^...^...^.^.^.....^.^...^.^...^.^.^.^.^.......^.^.^........................ +............................................................................................................................................. +.......................^.^.^.^.^.^.^.^.........^.^.^.^...^.^...^...^.^.^.^.^...^.^...^.^.^...^...^.^.^.^...^.^.^.^...^....................... +............................................................................................................................................. +......................^.^.^.^.......^.^.^.^.^...^...^...^.^.^...^.....^.^.^...........^.^.^.^.^...^.^.^.^.^.^.^...^.^.^...................... +............................................................................................................................................. +.....................^.^.^...^...^...^.........^...^.^...^.^.^...^.^.^.^...^.^.^...^.^...^...^...^...^.^.^.....^.^.^...^..................... +............................................................................................................................................. +....................^.^.^.....^.^.^...^...^.^.^.^.^.^.^.^.^.^.^.....^...........^...^.^.^.^.^.^.^...^.....^.^...^...^.^.^.................... +............................................................................................................................................. +...................^.....^.....^.......^.^.^.^.^.^.^.^.^.^.....^.^.^.^.^.^.......^...^.^.^...^.^.^.^.^.^.^.^.^.....^.^...^................... +............................................................................................................................................. +..................^.^.^...^.^.^.^.^...^.^.^...^.^.^.^.^.^.^.^.^...^.^.^.^.^...^...^...^.^.^.^.^...^.^...^...^.^.^...^...^.^.................. +............................................................................................................................................. +.................^.^.^.^.^.^...^.^.^.^.^.^...^.^.^.^.^...^.......^...^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^...^.^.^.^...^...^.^.^................. +............................................................................................................................................. +................^...^.^.^.^.^...^...^.^...^...^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...^...^.^.^.^.^.....^.^.^.^.^.^................ +............................................................................................................................................. +...............^.....^.^.^.^.^.......^.^.^...^.^.^.^.^.^...^.^.^.^.^.....^.^.^.....^.^.^.^...^.....^.^.^...^.^...^.^.^.^.^...^............... +............................................................................................................................................. +..............^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^...^.^...^.^.......^.^.^.^.....^...^.........^.....^...^.^.^.^.^...^.^.^.^.^.............. +............................................................................................................................................. +.............^.^.^...^.....^.....^...^.^...^.^...^.^.^.^.^.^.^.^...^.^.^...^.^...^.....^.^.^.^.^.^...^.^...^.^...^.^.^.^.^.....^............. +............................................................................................................................................. +............^.^.^...^.^.^.^.^.^.^...^.^...^...^.^.^.^.^.^...^...^.^.^.^...^.^.^.^.....^.....^.^...^...^...^.^.^.^.^.^.......^.^.^............ +............................................................................................................................................. +...........^...^.^...^.^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^.^...........^.^...^.^...^...^.^.^.^.^.^...^.....^.......^.^.^.^...^...^.^........... +............................................................................................................................................. +..........^.^.^.^...^...^...^.^.^.....^.^...^.^.^.^...^.^...^.^.^.^...^.^.....^.^...^.^.^.^...^.^.^.^.^...^...^.^.^.^.^.^...^.^.^.^.......... +............................................................................................................................................. +.........^.....^...^.^...^.^.^.^.^.^.^...^.^...^.^.^.^.^...^...^.......^.^...^.^.^.^.^.^.^.....^...^.....^.^.^.^.^.^.^.^.^...^.^.^.^......... +............................................................................................................................................. +........^.^.^.^.^...^...^.^.^...^.^.^.^...^.^.^.^...^.^...^.^.^.^.....^.^.^.^.....^.^.^.....^.^.^.^...^.^...^.....^.^.^.^.^.^...^.^.^........ +............................................................................................................................................. +.......^.^.......^.....^.^.^.^...^.^.^.^.^...^.....^.^.^.^.^.^.^.^.^.^...^.....^...^.^...^.^.^.^...^.^.^.......^.^...^.........^.^.^.^....... +............................................................................................................................................. +......^.^...^.....^.^.^.^...^.^.^.^.^.^...^.......^.....^.^.....^.^.^...^.^.^.^...^.^.^.^.^...^.^.^.^.^...^.^.^.^.....^.....^.^.^.^.^.^...... +............................................................................................................................................. +.....^.^.^.^.....^...^.^.^.^.^.....^...^.^...^.^.^.^...^.^.^.....^.^...^...^.^.^.^.....^.^.......^...^...^.^.......^.....^.^...^.^.^.^.^..... +............................................................................................................................................. +....^.^.....^.^.^.^...^.^.....^.....^.^.^.^.^.^.^.^.^.^.....^.^.^.^.^...^.^.^.^...^.^.^.^.^.^...^...^...^.^.^...^.....^...^...^...^.....^.... +............................................................................................................................................. +...^...^.^.^.^.^...^...^.^.^.^.^...^.^.^...^.^.^.^...^...^.^.^.^...^...^...^...^.^.^.^.^.........^.....^...^.^...^.........^.^.^...^...^.^... +............................................................................................................................................. +..^.^.....^.^.^.......^...^.^.^...^.^.....^.^...^.^...^.....^.^.....^.^.^...^...^.^.^...^.^.....^.....^...^...^.^.^...^.^.^.^.^...^.^.^.^.^.. +............................................................................................................................................. +.^.^.^.^.^.^.^...^.^...^.^...^.^.....^.....^.^.^.^.^.^.^.^.^...^.^...^...^.....^.^.^.^.^...^.^.^.^...^.^.^.^.^.^.......^.^...^.^.^.^.^...^.^. +............................................................................................................................................. diff --git a/day07/sample b/day07/sample new file mode 100644 index 0000000..57a2466 --- /dev/null +++ b/day07/sample @@ -0,0 +1,16 @@ +.......S....... +............... +.......^....... +............... +......^.^...... +............... +.....^.^.^..... +............... +....^.^...^.... +............... +...^.^...^.^... +............... +..^...^.....^.. +............... +.^.^.^.^.^...^. +............... diff --git a/day07/sol.py b/day07/sol.py new file mode 100644 index 0000000..1f0d1e4 --- /dev/null +++ b/day07/sol.py @@ -0,0 +1,25 @@ +def solve(input): + splits = 0 + pos = [] + for row in open(input): + row = row.strip() + next = [] + for i in pos: + if row[i] == '.': + next.append(i) + elif row[i] == '^': + if i-1 >= 0: + next.append(i-1) + if i+1 < len(row): + next.append(i+1) + splits += 1 + start = row.find('S') + if start >= 0: + next.append(start) + + pos = sorted(set(next)) + + print(splits) + +solve("sample") +solve("input")