diff options
Diffstat (limited to 'day3')
| -rw-r--r-- | day3/__init__.py | 43 | ||||
| -rw-r--r-- | day3/example.txt | 11 | ||||
| -rw-r--r-- | day3/input.txt | 323 |
3 files changed, 0 insertions, 377 deletions
diff --git a/day3/__init__.py b/day3/__init__.py deleted file mode 100644 index 4954c15..0000000 --- a/day3/__init__.py +++ /dev/null | |||
| @@ -1,43 +0,0 @@ | |||
| 1 | from functools import reduce | ||
| 2 | from typing import List, Generator | ||
| 3 | |||
| 4 | from aoc import BaseAssignment | ||
| 5 | |||
| 6 | |||
| 7 | class Assignment(BaseAssignment): | ||
| 8 | def read_input(self, example = False) -> List: | ||
| 9 | return list(super().read_input(example)) | ||
| 10 | |||
| 11 | def slope(self, input: List, dx: int, dy: int) -> Generator: | ||
| 12 | for y, row in enumerate(input[::dy]): | ||
| 13 | x = (y * dx) % len(row) | ||
| 14 | yield (x, y) | ||
| 15 | |||
| 16 | def get_trees_for_slope(self, input: List, dx: int, dy: int): | ||
| 17 | trees = 0 | ||
| 18 | |||
| 19 | for x, y in self.slope(input, dx, dy): | ||
| 20 | if x == 0 and y == 0: | ||
| 21 | continue | ||
| 22 | |||
| 23 | if (input[y * dy][x]) == '#': | ||
| 24 | trees += 1 | ||
| 25 | |||
| 26 | return trees | ||
| 27 | |||
| 28 | |||
| 29 | |||
| 30 | class AssignmentOne(Assignment): | ||
| 31 | def run(self, input: List): | ||
| 32 | return self.get_trees_for_slope(input, 3, 1) | ||
| 33 | |||
| 34 | class AssignmentTwo(Assignment): | ||
| 35 | def run(self, input: List): | ||
| 36 | return reduce(lambda accumulator, value: accumulator * value, [ | ||
| 37 | self.get_trees_for_slope(input, 1, 1), | ||
| 38 | self.get_trees_for_slope(input, 3, 1), | ||
| 39 | self.get_trees_for_slope(input, 5, 1), | ||
| 40 | self.get_trees_for_slope(input, 7, 1), | ||
| 41 | self.get_trees_for_slope(input, 1, 2), | ||
| 42 | ]) | ||
| 43 | |||
diff --git a/day3/example.txt b/day3/example.txt deleted file mode 100644 index 8f551de..0000000 --- a/day3/example.txt +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | ..##....... | ||
| 2 | #...#...#.. | ||
| 3 | .#....#..#. | ||
| 4 | ..#.#...#.# | ||
| 5 | .#...##..#. | ||
| 6 | ..#.##..... | ||
| 7 | .#.#.#....# | ||
| 8 | .#........# | ||
| 9 | #.##...#... | ||
| 10 | #...##....# | ||
| 11 | .#..#...#.# \ No newline at end of file | ||
diff --git a/day3/input.txt b/day3/input.txt deleted file mode 100644 index 6cfcb73..0000000 --- a/day3/input.txt +++ /dev/null | |||
| @@ -1,323 +0,0 @@ | |||
| 1 | ...#...#....#....##...###....#. | ||
| 2 | #.#...#...#....#.........#..#.. | ||
| 3 | .#....##..#.#..##..##.......... | ||
| 4 | .....#.#.............#..#...... | ||
| 5 | .......#...#.##.#......#..#.#.. | ||
| 6 | #.#....#......##........##..... | ||
| 7 | .....##.#....#..#...#...##...#. | ||
| 8 | ...#...#..#.......#..#...##...# | ||
| 9 | ..........#...........##....... | ||
| 10 | ..#..#..#...................#.. | ||
| 11 | #..#....#.....##.#.#..........# | ||
| 12 | .#.##.......###.....#.#...#.... | ||
| 13 | .#..##....##....#.......#...### | ||
| 14 | #.#..##...#.#..#............... | ||
| 15 | .........#....#.......##.#.#... | ||
| 16 | ...###...##....##...#..##.#..#. | ||
| 17 | ....#.........#..#...#.......#. | ||
| 18 | ....................#..#.#.#... | ||
| 19 | ..#....#..........#...........# | ||
| 20 | .#.....#..#.....##........##..# | ||
| 21 | #..##..#...##............#..##. | ||
| 22 | .#..##....#..........#..#.##.#. | ||
| 23 | ..#####..#.#............##..... | ||
| 24 | ...###.#....##..#.#....#.....#. | ||
| 25 | .#.......##....#...#.#.....##.. | ||
| 26 | ...#....#...##.#...#..#........ | ||
| 27 | .####.....#....#.#.#...#....... | ||
| 28 | ...#....#.....#.......#........ | ||
| 29 | #..#.#.......#...#............# | ||
| 30 | ...#.....###.##....#.#.###.#... | ||
| 31 | .#.........#.......#.#....##... | ||
| 32 | #.#..#...#.#...##......#..#.... | ||
| 33 | .....#...#..#.#...#..###..#.... | ||
| 34 | ......#.........#...###........ | ||
| 35 | .....#..##...#..........#.....# | ||
| 36 | ..#..#.#.##.#...#....#....##..# | ||
| 37 | ##....#.##...#.##.#..##....#... | ||
| 38 | .....#.#.#.#..#....##.#...#.#.. | ||
| 39 | .....##.......#........#....... | ||
| 40 | ...#.#.....#...#...##.#......## | ||
| 41 | ........#..#.#...#.#.....#.#..# | ||
| 42 | #..##...#.#...##..##...#.#...## | ||
| 43 | .##.#.#..#...#.....#.#.##.#...# | ||
| 44 | .#.####.........##.........#..# | ||
| 45 | .##..............#....#...#...# | ||
| 46 | ......#...#..#...#..#..###.#... | ||
| 47 | .......##...#.#.#..##..#......# | ||
| 48 | .....#....#..##..#.........#... | ||
| 49 | .....#..#.#.#........#.#.####.. | ||
| 50 | #..#.......###....##........... | ||
| 51 | #..##..........#.#......#.#.... | ||
| 52 | .....##........#...#..##....... | ||
| 53 | ###...#.##.#.#.#.#.##...##..... | ||
| 54 | ....#...#........##.#.##..##... | ||
| 55 | .#..#.#.#......#.......##..#..# | ||
| 56 | .#...#.................#....#.. | ||
| 57 | .##..#..........#..##.......#.. | ||
| 58 | .#.#.#.....#..#.#.........##..# | ||
| 59 | ...#......##...#.......#...##.. | ||
| 60 | ##...###....#.###.............# | ||
| 61 | #.....#.#..#.#..#........#.#.#. | ||
| 62 | .....#.#......##..#.#.....#.##. | ||
| 63 | .......#...........#..#.......# | ||
| 64 | ..#....#.#.#......#.....#...#.. | ||
| 65 | .....##........#..##..#..##.... | ||
| 66 | #.#........#...##....#.#..##... | ||
| 67 | #......#......#....#..#...#.##. | ||
| 68 | ....#.#.......#.#.#............ | ||
| 69 | ......####.#.##...#.#.##.....## | ||
| 70 | ..###.#.#..#.........#.####.... | ||
| 71 | .#.......#..#.#....#.#..#.#.##. | ||
| 72 | #....#....#............##...##. | ||
| 73 | ....#....#............#....#..# | ||
| 74 | ..#........#..#....#..#..#...#. | ||
| 75 | .#......##....#..........#....# | ||
| 76 | #.##.....#..........#.###.#.... | ||
| 77 | ....##...#.....#.#......#.##... | ||
| 78 | #.#.....#.......###.###..#..#.# | ||
| 79 | ..###..##.............#.####.## | ||
| 80 | #....#.....#....#..##.......#.. | ||
| 81 | .....#....#...#.#.#.#..#...#.## | ||
| 82 | ...#.....#..#....###......#.#.# | ||
| 83 | ##.........#.#..#..#.#..#.....# | ||
| 84 | .#.....#.#....#.........##..#.# | ||
| 85 | .#.#..#.###..#..#..........#... | ||
| 86 | .##....#.#.#...#......##.....#. | ||
| 87 | #.#....#....#...#...##...#..#.. | ||
| 88 | #...#........#....#....#......# | ||
| 89 | #......#...#..#.#.##.....##..#. | ||
| 90 | ....#...#......##...#..#....#.. | ||
| 91 | .#......##.##.......#.......#.. | ||
| 92 | .#...#..####...........#.#.#... | ||
| 93 | .........#...#.#.........#..... | ||
| 94 | #.##.....#.#..#.#.###...###..#. | ||
| 95 | #...##.###......#.###..##.#.##. | ||
| 96 | ...##.#.....#....#..#......#... | ||
| 97 | #....###.#..#...##.....#......# | ||
| 98 | ........###...#...#............ | ||
| 99 | ........#....#...#...#....#...# | ||
| 100 | #....#..#..#....#.#........#.#. | ||
| 101 | ##...#.....#.#..........#..#..# | ||
| 102 | #.#...##.....#........#...#...# | ||
| 103 | ##.#.#.......#...#..#.###....#. | ||
| 104 | .#.......#....##..##...#.....#. | ||
| 105 | #....#....#.....#.......#...... | ||
| 106 | .##.##.##...##...#.#.#..#..#... | ||
| 107 | #..#..#.##....#......##....###. | ||
| 108 | .......#.#.........#..##.#...## | ||
| 109 | .#..##...#....#.....#.......... | ||
| 110 | ..#.#...#......#.#..#.......... | ||
| 111 | .##....#.#.#.##.......###...#.. | ||
| 112 | ..##.#...#.#.#.#.......#..#.... | ||
| 113 | #..#.......#...#........#.....# | ||
| 114 | .....#.......#......###..#..... | ||
| 115 | ...##.#.......#.....##.....##.. | ||
| 116 | ##..#.......#.#.....#....#..... | ||
| 117 | ..#....#.##.##...#...#......#.. | ||
| 118 | .#..#.###.#....###........#...# | ||
| 119 | ....##.##...##..#..#.#....#.... | ||
| 120 | ..###...##.....##.............. | ||
| 121 | #....#...##...#....#..........# | ||
| 122 | .##........#......##...##...#.# | ||
| 123 | ..#.#.##..........#......#..... | ||
| 124 | ...#...#.........#.##........## | ||
| 125 | ..#.#..#.#..#...#....#...#..... | ||
| 126 | ...##...#..#.###.#..#.#...#.... | ||
| 127 | ....###........#..#..##...#.... | ||
| 128 | #.#....##.......#.#........#... | ||
| 129 | .###...#..#.#.#.#..#...#..##.## | ||
| 130 | ..#.........#####.#......#..#.. | ||
| 131 | #.....#.....##..#....#...#...#. | ||
| 132 | ...#..#....##....##.....##.#... | ||
| 133 | .........#............#.##..... | ||
| 134 | ....##.#..#....#.##.......#..## | ||
| 135 | .###....#.#..#......#.#.......# | ||
| 136 | .###...###.#.........#.#..#...# | ||
| 137 | .....#........#..#.#..#.#..##.# | ||
| 138 | .###..#....##.........#..##.... | ||
| 139 | ..#.......#..#..##...#.###.#... | ||
| 140 | #.......#...........#.#...#.### | ||
| 141 | #.##.##...##.#...##..#.....#... | ||
| 142 | ..#..#........###.#.....##..... | ||
| 143 | #.....##....#...##...####..#..# | ||
| 144 | ....#........#...#...#......... | ||
| 145 | ......#.#.#.#.......#..#.....## | ||
| 146 | ..#..#....#.....#.#...##......# | ||
| 147 | ..#....#...#.###.........#.###. | ||
| 148 | ...#......##..#.#.....#...#.... | ||
| 149 | ...#.......#...#...#........##. | ||
| 150 | ............#...#..#....#.....# | ||
| 151 | ....##......................#.. | ||
| 152 | #.#.#....#....#..........##.... | ||
| 153 | #.#.....#.#.##..#...#.##....##. | ||
| 154 | ...#...#..#...#..#.#.#.......#. | ||
| 155 | #.....#..........#.........##.# | ||
| 156 | #...##..#..#.#.......###....#.. | ||
| 157 | .#...#..##....#.....##.......#. | ||
| 158 | ....#.##.....#.........#.#....# | ||
| 159 | ........#.#...####..#.......#.# | ||
| 160 | .####...#.#......####.....#.##. | ||
| 161 | ###..#....#..#.......#.#..##..# | ||
| 162 | #......#.#....##..#.##.#....#.# | ||
| 163 | ...###...#...#..##.#..#..#.#... | ||
| 164 | ...##..##....#..#.....#........ | ||
| 165 | .....#..............#......#..# | ||
| 166 | ......#....#......#..#......... | ||
| 167 | #..#.....#.##...........##..... | ||
| 168 | .#..#.#..................##.... | ||
| 169 | #.#..#..##...#....#.#......#... | ||
| 170 | .##.#.##......#.##...#...#...#. | ||
| 171 | ..#...#.........#.#..#.#....#.. | ||
| 172 | .#.####.#..#.#......##.#..#.... | ||
| 173 | #..#.......#....#.............. | ||
| 174 | ....#............#..#.......... | ||
| 175 | .....#####.....#.....#..##...## | ||
| 176 | #.#....#.#...............#..##. | ||
| 177 | .#.#..#...#......#.....#.#.#... | ||
| 178 | .#....#.#.#......#.....##....#. | ||
| 179 | ....#....#.##..#.......###...## | ||
| 180 | .....#..#.##...#...#...#..#.#.. | ||
| 181 | ##..#........#.#..#..##......#. | ||
| 182 | .#..#..##.......#..#.....#..... | ||
| 183 | .#.#.....###..##.#.#........... | ||
| 184 | ..##..##.####..........#..#.... | ||
| 185 | ..##..#..#...#....#......#.#... | ||
| 186 | #...#.#......##.....##.#..###.. | ||
| 187 | #..#..............#........##.# | ||
| 188 | .........#.##..#.#..#..##.##.#. | ||
| 189 | #....##....#.#..#.#...##..#.... | ||
| 190 | .#....#.......#............##.. | ||
| 191 | .......#.#.......#...#.#......# | ||
| 192 | ......##...#.......#.#........# | ||
| 193 | ..###..#.#.##....##...#....##.. | ||
| 194 | ..##.##..........##..###....... | ||
| 195 | .#.#.#..#..#.#.......#.#...##.. | ||
| 196 | ..#..##.........#.###..#......# | ||
| 197 | ....#.#.#...##.#...#...##..###. | ||
| 198 | ..###..##.........##...#...#..# | ||
| 199 | .#..##...#.......#.......#..#.# | ||
| 200 | ........##....##....#.#.###.#.# | ||
| 201 | #.....#.#.................#.#.. | ||
| 202 | ....#.#.#.....##.####.#......#. | ||
| 203 | ....#.......#.#.##.##.......... | ||
| 204 | ...#...........#...#.##...#.### | ||
| 205 | #....#....#..........#.##...... | ||
| 206 | ##..#...........##.....##.##... | ||
| 207 | .#.##...##..##....#..#.....#### | ||
| 208 | #...#...#.##..........##..##... | ||
| 209 | ....##..#....#.....#.#...#....# | ||
| 210 | ..#....#..##...###.#.#......... | ||
| 211 | #......#.#.#...#...#.........#. | ||
| 212 | #............###.#.#.#..##...#. | ||
| 213 | .##.....####...##..##..#..##.#. | ||
| 214 | #..#........#.....#.#.....#...# | ||
| 215 | #............#....#.#.#........ | ||
| 216 | ......##...##.#....#.....#...#. | ||
| 217 | ..#........##......#.#.....##.. | ||
| 218 | .#..#..#.....##.......#..#.#..# | ||
| 219 | .#....#..#....##.#.#.#..#..#.## | ||
| 220 | .####.#..........#...#..##..... | ||
| 221 | ...###..###...##..#............ | ||
| 222 | #..#.....##.#...#..##..#....... | ||
| 223 | .....##....#...###.##...#...... | ||
| 224 | ...##..#...#..#..##....##....#. | ||
| 225 | ...###....#.###.#.#.##....#.... | ||
| 226 | ##.#.#.....#....#.#....#..#.... | ||
| 227 | .......##.....#.#..##...##...#. | ||
| 228 | .#....#.#...##.#..#....#.....#. | ||
| 229 | ..#...#..#...#.##........#...#. | ||
| 230 | #....#......##.#....##...#.#..# | ||
| 231 | .....#..#..#..#......#...#.#.#. | ||
| 232 | ..###....#........#...#.......# | ||
| 233 | ###...#.......#.#.......##.##.. | ||
| 234 | ......##.....#.#........#....#. | ||
| 235 | #.##..#.#.#.#..#....#.##.....#. | ||
| 236 | ..........#.##.#...#...#..#..#. | ||
| 237 | ..#...##.#..........#..##.###.. | ||
| 238 | ..###..##.##..#.#...##.####..#. | ||
| 239 | #.#.#...............##....###.# | ||
| 240 | ....#.........#.#....#.#....#.# | ||
| 241 | ..#...#.###...#....###.....#... | ||
| 242 | ..#..#....#...#............#... | ||
| 243 | .#..#....#..##.....##.......... | ||
| 244 | ..#....#.#...#.#.#.#.......##.# | ||
| 245 | .........#....##........#.#.... | ||
| 246 | ...#..##.#..#.##...#...#.#....# | ||
| 247 | ....####...#...####.#....###..# | ||
| 248 | ......##...#.##.#.......#..#... | ||
| 249 | #.#...#.#...#.#...#....#.#.#... | ||
| 250 | .#.....##...#.....###.#....#... | ||
| 251 | ......##.....###...#.#...#.#... | ||
| 252 | #..#..##.#.#......#....#..#..#. | ||
| 253 | ....#.###.....#..#...#.##.....# | ||
| 254 | ##.##........#......#....#..##. | ||
| 255 | ##.....##.#.....#.....##.....#. | ||
| 256 | .....#.##...#.#..#.#.#.....#... | ||
| 257 | .#.##..#...#.#..#.....#.#...... | ||
| 258 | .....##.......#..#...##..#..#.. | ||
| 259 | #.....#..#.####......#........# | ||
| 260 | .#..#..##.#..##............#..# | ||
| 261 | .##..#.#....##.##.....#......#. | ||
| 262 | .......##.........#..#......... | ||
| 263 | .#...#.......................#. | ||
| 264 | #......#.#....##.#.......#..#.. | ||
| 265 | ..##..##......#.......#....#.#. | ||
| 266 | ##......#......##...##......... | ||
| 267 | ..#....####....#.#.....##.#.#.. | ||
| 268 | ..........#..#.#.#.....#..#.#.. | ||
| 269 | ##..##...........##.......#.... | ||
| 270 | ##....#.#....#..#......###....# | ||
| 271 | ...#.#.#..#.......##.......#... | ||
| 272 | #....#.......#.......#......... | ||
| 273 | ...##......##....#...#......#.# | ||
| 274 | #......#####.#.........#.....#. | ||
| 275 | #..#.............#..#....#...#. | ||
| 276 | .......#.##..#..#..#..#....#### | ||
| 277 | ......#.##..##..........###...# | ||
| 278 | .#.##....###..#........#....##. | ||
| 279 | #......#..#...###.#...#.....#.. | ||
| 280 | .#.#.......#....##.......#.#... | ||
| 281 | ..#.##..#..##.....#.........#.# | ||
| 282 | #.#...#..#.##....#.......##.... | ||
| 283 | .#.....###....#.#..#...#.....#. | ||
| 284 | #...#..#.......#.#.....##...#.# | ||
| 285 | #.#####.........#....##.....#.. | ||
| 286 | #....#..##...#....#.##.......#. | ||
| 287 | .#.#.........##....##....#..... | ||
| 288 | ...#..##.......#....#.#.#...... | ||
| 289 | #.###.##...###....#.....#.####. | ||
| 290 | .#...#.#.#..##.#..........#.... | ||
| 291 | #.#.....#.##.#..####.....##.#.. | ||
| 292 | ...###.##..####.......#......## | ||
| 293 | .##..#.........#...#.#.....#.## | ||
| 294 | ..#.....##....###.....#.#...##. | ||
| 295 | #....#....#..#....#.##......... | ||
| 296 | ......###....#.#..#..#....##... | ||
| 297 | .#.#................#.......##. | ||
| 298 | ...#.......#.........#.#....... | ||
| 299 | ...#..........#...##.....###... | ||
| 300 | ....#......#...#............... | ||
| 301 | .##...#....#.....#.##......#... | ||
| 302 | .#.....###...##..##...#.#...... | ||
| 303 | ....##........#.....#...#....#. | ||
| 304 | #.........#.#...##...#.#..#.... | ||
| 305 | ...#.#.....#.#........#.#....#. | ||
| 306 | .#........#.....#.#.#.#.#..#... | ||
| 307 | ....#...#.....#.#....#........# | ||
| 308 | ..###.#....#.#....##...##..#.## | ||
| 309 | .#....#.#.####.#.#.....#....... | ||
| 310 | .#...#...#.................##.# | ||
| 311 | ..................##..#..#.#.#. | ||
| 312 | .#..#............##....###..... | ||
| 313 | .......#....#...........#...... | ||
| 314 | ....#.#.#.....###.........#..## | ||
| 315 | ...#.#....#.#.##.#.##.....##..# | ||
| 316 | .#.##.#...##...#.......#.....## | ||
| 317 | .#............#...#..##...#.#.# | ||
| 318 | #.##..#.##..#..##.###.#........ | ||
| 319 | ..............##....#...#..#.#. | ||
| 320 | .#.#...#.#....#....###........# | ||
| 321 | .#....#.#....#......###........ | ||
| 322 | ..#.......##......#.##.....#... | ||
| 323 | .....#......#..#...#.#.....#... \ No newline at end of file | ||
