From c5d1577688344d8aebc1b526be05649d295f257e Mon Sep 17 00:00:00 2001 From: Tim Stallard Date: Thu, 3 Dec 2020 14:19:28 +0000 Subject: [PATCH] day 3 --- 03/1.py | 5 + 03/2.py | 10 ++ 03/input | 323 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 03/test | 11 ++ 4 files changed, 349 insertions(+) create mode 100644 03/1.py create mode 100644 03/2.py create mode 100644 03/input create mode 100644 03/test diff --git a/03/1.py b/03/1.py new file mode 100644 index 0000000..b5bb738 --- /dev/null +++ b/03/1.py @@ -0,0 +1,5 @@ +lines = open("input", "r").read().split("\n") +lines = [l for l in lines if l] +visited = [l[(i*3)%len(l)] for i, l in enumerate(lines)] +trees = [t for t in visited if t == "#"] +print(len(trees)) diff --git a/03/2.py b/03/2.py new file mode 100644 index 0000000..ee359b7 --- /dev/null +++ b/03/2.py @@ -0,0 +1,10 @@ +lines = open("input", "r").read().split("\n") +lines = [l for l in lines if l] +def treecount(r, d): + rows = [l for i, l in enumerate(lines) if i%d==0] + visited = [l[(i*r)%len(l)] for i, l in enumerate(rows)] + trees = [t for t in visited if t == "#"] + return len(trees) + +print(treecount(1,1), treecount(3,1), treecount(5,1), treecount(7,1), treecount(1,2)) +print(treecount(1,1) * treecount(3,1) * treecount(5,1) * treecount(7,1) * treecount(1,2)) diff --git a/03/input b/03/input new file mode 100644 index 0000000..f38deab --- /dev/null +++ b/03/input @@ -0,0 +1,323 @@ +........#..#.##.#.............. +...#...............#.#......... +...#..#...#..##....#........... +...#.............#....#.....#.. +..#......#..#...#.......#...... +..............##............... +#.......#.........#......#....# +.#.....###.....#...#.#.#...#... +#.....................#....#.#. +.......#...................#... +...#.#...................#....# +....#....#.......#...#......... +..##.#............#..#......... +.....##.#..............##..###. +...........#....#....#......... +#.....#...#...#.#.#.#.##.#...#. +.#...............#....##....... +.....#..#......#....#.......##. +.....#........#.......#........ +...#...##...#..##...#.....##... +.....#.........#.###...##...#.. +.#.##...#........#.#.#.#....#.. +....#......##.#...#.....#....#. +.......###..........#..#..#.... +......#...#.##................. +....#...#...#.........#......#. +.....#...........#...###....#.. +.....#...#.#.#....##.#......#.# +......#...#.....#..#..#........ +#......#..#...##........###.... +##.....#....##..#.#.###.#...#.. +........#....#.......#.....#..# +#.#.#.##.#.#................... +..#...##....#......#.....##.... +.......#.##..#........##..#.... +.#.#....##......#.#..........#. +#..............#............#.. +.#.#.#.#.#.####.#.#...##....... +.#..#.....##.#.......#.##...#.. +..#.#........#.............#.#. +..#.#..........#..#........#... +..#..#...#.......##...#.#....## +...#.....#.#.#.....#....#....#. +.#...#......#.....#..##........ +...#.......##.#.#.....#......#. +...........#.....#.#.......#... +#...........#...#..#.#........# +....#......#..##........#..###. +.#..#........................#. +#.......#......#...#...#..#.... +....#.#...#..#.#....#....##.#.. +.....#......#..#..........##.#. +.#.....#...........#.........#. +...###.#...#.......#.#......... +.......#....#..........#..#...# +......##..#.......#...##....... +..#..........#.......#......... +..........#..#..#..#..#........ +.#.................####...#.#.# +..##.....#............#........ +....#.....###...#......#....#.# +...##.#...........#.##......#.. +#..##..#..#....#...#..#........ +......#....#........#.......#.. +......#.....#......###......... +.#.....#.#......#.......#...... +..#.........#..#..#........##.# +..#.#....#.....#....##....#.#.. +...#.............##............ +........#..#..#......#...#..... +.....#.#...#...##.....#.....#.. +.#..#.#..........##...##.....#. +......##.#..........#...#.....# +#.#.##......#....#..........#.. +................#.......#.##... +#.......#.....#.......#....#... +#..#.....#.##..##...........#.. +.....#....#.#.##..........#..## +#.......#.....#.##...........#. +........#.##........###..#.#... +........#..................#... +#.........................#...# +....#.........#...#.#..#.....#. +.#............#....#........... +..#.#...#..##...#.#.......#.... +.#.#....#...........#.........# +...#.#..........#.....#...#.... +......#....#.#...............## +....##......###...##.##.....##. +............#.#....#.#.....#..# +.....#..#.....#.#...###....#... +.......##....##..#...##..#...## +.....#.......##..#...#...#....# +#.........##....#........###.#. +...#..##...#...#.........#.#.#. +....#.#.....#.....#............ +#........#....#..#........#.... +.......#....#...#.............. +#...#.........##.....###.#..... +.#....##..#...#..##.........#.. +....#.....#......##..#..#....#. +#.#..#.........#........#...... +..#.......#.........#.....###.. +..#..........#...........#....# +..#...............#......#..#.. +....#..#...#....###.....#..#..# +#...#...#..#...........#....#.. +.#....#.#..#....#.#...........# +.....#.....#..#....#..#....#... +#.#..#...........#.#........... +..................#.#.......#.. +...#.........#.....#..##....#.. +.........#.#...#.........##.... +...#..#....#.....#...#..#...... +.#.##.....#....#....#......##.. +##..#.........#.#....#...#..... +#......#.#...#....#.#..#....... +.......#.....#.....###....#.#.. +.#....##.#.....#...#.......#... +.#.......#..#...#......#..#..## +...............#...#........... +#..............#....#.#.#....#. +...........#..#.......#.##..#.. +..#......#.#....#...#.#.....#.. +#.............................. +#..#....#..........#...#....... +......#.............#####...... +.#...###......#.#.#.##..#...... +............#.##.....#......... +.........#....##....#.......... +###....#......#.......#........ +.#.......##..........#..#....#. +#..#.....................#....# +........#...........#.......... +..#..........#...#..#.........# +..#..#......##................# +.....##..#...#..#.............. +.......#...##..#............... +.......##..#.####....#....#.#.. +#.#..#..........#........##.... +....##....#.#..#....#.#...#.... +......#.......#...#.....#...#.. +..#..#...#.....#.......###..... +...#.......#.#.#.......#.##.... +...............#..#.#........#. +.#....###.#......#............. +.#..#...#....#.#..#.....#...... +.......#.##....#.#.##.##...#.#. +..#...#....#.#..##.#.....#...## +..#...#......#...#......#...#.. +....#..#...#.#..#......#....... +#..#...............#......#.##. +.#....#...#..........#.#.....#. +.#..#.#.#................#..#.. +.#....#.#...#..##.###..#...###. +#.............#.....#.........# +...#.........#...#.......#..#.. +......#..#.........#..........# +........##................#..#. +......#...#.#.....#......##.... +...............#...#....#...... +...#.#..#..#.....##.###..##..#. +.#....##......#...#..##..#..... +.....#.........##.##....#...#.. +.....#.#..................####. +#.....#...#.............##....# +#.#..........#...#..#..#....... +#..#.#.........#............... +....#...#.........#...##....... +...........#.....#..##..#...... +#.....#.......#.#........#..... +..##..#.....#...##......#...... +....#....#..................... +............#......#.........## +.....##.............#.....##..# +.......#.............#..#.#.##. +.###...#......#..#........##.#. +..#.#...#.#....#.....#..#...... +..#.#..#.##........#...#....... +........#.#...............#..#. +........##.......#...#.......#. +...#........##.#..........#.#.# +..#..###.#.#.......#.#......#.. +....#..........#...#..#........ +...#..#...#...#.#....#...#..#.. +...#...#........#......##...#.# +#...........#..........#..#.##. +...#..##..................#.#.. +...##.#...#....#.#...#.####.... +.....#...#.#.#..#.............. +.....#..#.#.#..#............... +..#..#..##...#.#..#.....##....# +.......#.#..#.....#....#....... +...#..#....#.........#...#..... +..............#.#...#...##..... +...................#........... +.#......#.#...................# +.##.....#........#.........#..# +.##..##...#...................# +...#....#.#..#.#.#..#.....##... +.......#..#....#......####.#... +.##..#..##....#.......#........ +.#...#...........##............ +.....#.....#........#.......... +....##..#....#.....#........... +.#...#....................#.... +....#.........#.......##.....#. +.#....#..#.....#.##....#....... +....#..#.........#.#....#.#.... +.......#.........##....#....... +..#......#....#....#...#....... +........#..#.......#.##......#. +..#.....#......#...#..#.......# +#..#.....##...#...#............ +.......##.......#........#...#. +..#......................#...#. +....##.#.............#......#.. +#.#............................ +...##.#.....#.#............#.## +......#...#..#.........##...... +.#.......#.....##.......#.#.... +...........#.#.........#..##... +...#..........#.##....#........ +........#..#..#...#....#....#.. +........##....#.#....#........# +..#........##....###....#...... +#................###...#...#... +................#.#..###......# +..#.....##.#................#.. +.....#...............#..#...... +..#.......####.....#..#.#....## +..#.....#..#....#.............. +#.#...........#.#.....#..##.... +#.#..........#.......#...#.###. +........#....#...#..#.#........ +.#.....#......#..#..#..###..#.. +.#.........#.##.#.#......##.... +..#.........#...##..#........#. +.#...................#......... +...#.#........#................ +............#.....#..##........ +..#.....#.#......#.......#...#. +........#....##..##...#.....##. +.#........#.#....#.#....#.#..#. +#.#.......#.................... +.#..#...##.........#..#........ +.........#...............#..... +...#...#.....#......#.......#.. +###......................#.#..# +...#.....####........#..#.....# +#.#...#.#...................##. +.........#..................... +#..........##..#.....#....#.... +.......#...#.#.##.#..##........ +..........#..#.#..#.#.......#.# +.....................#.#...#... +...........#.#........#.#.#.... +.......#......#........#...#.#. +.........#....................# +.##.##....#...#.#.#.#.......... +#....##..#.##....#....#.......# +.##.#...#...............#....#. +.......#...#.###....#.......... +.....#....#...#..#............. +#.........#.##....#.#.#........ +..#...#.............##..#..#... +#..##.......#..........#...#.#. +.#..#.....#...........#......#. +......#......#..............##. +.#...#..#...#..####.....#.....# +....##.......#..........##..... +.#.....#.......#.....#.#...#... +..#..#..#.#...#......#......... +......#.#....#........#.......# +........#.......#.............. +..#...#.#....#........#.......# +............#....#...##.#...... +.........#.............#..#.... +#.............#.#..##.......#.. +#....#...........###....#...... +...#.....................#..... +....#.#..........#...#.......#. +......#..#.......#...#...#....# +.#.#..#.....##.#........#...... +...........#...#.#............. +...###............#...#..#..... +..#.#.......#...#.#..#......... +.#......##...........#.....#.## +.....##.....#....##...##.#.#... +..........#.#.#......#........# +..#.#........#....##....#.#.... +.#....#...##...........#....#.. +##......#...#.......#.......... +.##...###..#...#......#..##.#.# +...........##.#..##...#.......# +..#..............##............ +........#..#........#...#..#.#. +..#.............#......#...##.. +#...##....#...#....#....#.#.... +.#.#......#..##............#.#. +.....###.#....##....#....#..... +#.#.#..........#...#...#.#.#... +.....#.#...........####........ +.....#....##...#.##..#......#.. +#....#.......#.##.......#..#... +.....#.....#........#.......... +.......#.......#...#.##......#. +...#.........##...#.#.#......## +#........#........#...#..#..... +.#......#.#......#.#...#....#.. +#..#....##.....##.............. +...#.##............#..........# +.....#.#....#..#.#............# +..#......#...###.##.......###.. +........#....#.#.#.#........... +............#..#........#.....# +....#...............#.......... +......#....#....###..#.......## +#...#...##....#.........#...#.. +...........#.#.............#... +...#..#.....#..##.#....#......# +..#...#..#...#......#.......... +....#..#....#.......#........#. diff --git a/03/test b/03/test new file mode 100644 index 0000000..7e88cdc --- /dev/null +++ b/03/test @@ -0,0 +1,11 @@ +..##....... +#...#...#.. +.#....#..#. +..#.#...#.# +.#...##..#. +..#.##..... +.#.#.#....# +.#........# +#.##...#... +#...##....# +.#..#...#.#