diff --git a/day01-1-input.txt b/day01-input.txt similarity index 100% rename from day01-1-input.txt rename to day01-input.txt diff --git a/day01.ipynb b/day01.ipynb index e319a7f..02716eb 100644 --- a/day01.ipynb +++ b/day01.ipynb @@ -2,16 +2,16 @@ "cells": [ { "cell_type": "code", - "execution_count": 12, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ - "input_1 = open('day01-1-input.txt')" + "input_1 = open('day01-input.txt')" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -219,7 +219,7 @@ " '1407\\n']" ] }, - "execution_count": 13, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -231,7 +231,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -439,7 +439,7 @@ " 1407]" ] }, - "execution_count": 17, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -454,7 +454,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -475,7 +475,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -495,6 +495,13 @@ " break" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, diff --git a/day03-input.txt b/day03-input.txt new file mode 100644 index 0000000..8ffc29d --- /dev/null +++ b/day03-input.txt @@ -0,0 +1,323 @@ +.......#..#....#...#...#......# +..##..#...##.###.#..#.....#.#.. +#..#.#....#......#..#.........# +.#..##...#........#....#..#..#. +#.#.#....###...#........#.....# +.#...#.#.##.#.##...#.#......... +####......#.......###.##.#..... +..#...........#...#.#.#........ +.#.......#....###.####..#...... +...##........#....##.......##.. +.###......##.#......##....#.#.# +........#.#......##...#......#. +#....##.#..#...#.......#....... +.#..##........##.........#....# +.#..#..#...#....#.#......#.#... +..#.#......##.#.......#....##.. +......##......#.#..##.#..#...#. +.....##.......#.#....#.#....... +........#.....#.....#..###.#... +#........#..#.....#...#.#.#..#. +.#..#.....#...#........#.....#. +.#.#.....#.....#...#........... +.....#.#..#..#...#..#..#..##..# +##.#...#....#..#.##..#.....#.#. +#.......####......#..#.#....#.. +......#.#...####.........#.#..# +.#.........#..#.#...#.......... +...#####.#....#.#..#......#.#.# +##....#.###....##...##..#.....# +...........####.##.#....##.##.. +#.#.#..........#.#..##.#.###### +##...#..#...........###..#....# +.#.#.#...##..........##.#...#.. +...#.#........#..##...#....#... +......#..#...#..##....#.......# +.#..#.......#..#......##....##. +.......#.......#........#..##.. +...#...#...#.##......#.##.#.... +.........#.........#.#.#.##.... +..#...................#....#..# +.........#..#.....#.#...#....#. +#.#.#...#........#..###.#...... +#.#.#.####......##...#...#....# +#...........##..#.#.#....#..#.. +........#..#.#...........##.#.# +.#.........#...........#..#.... +#............##.#..#....##...## +.#....##..#.#....#.......#..#.. +..#.#...#.#......####.......#.. +...#.#.......###......#.....#.. +#......#.......#.#...#.#..##... +...#.....#...##.#.....#.#...... +#.#.#............#..#......#..# +....#...#...##.##.##...##.#.... +..##........#..#........#...##. +.......#..#...#.........#.....# +...........#.#......#...#...... +...##..##..##..###..#..#..#..#. +#..##.......##..#....#....#.#.. +#.#.##.#..##.....#....#.#...... +....#..##......#.#..#....#....# +.#.#.........##...#......##.##. +##...........#..#.....#.###.... +.#.###........#...#....##..#... +......##.....#................. +.#.##..#.#.......#......#.#.#.. +.#...#....#.##..........##.##.. +#...##......####.#....#....#... +.#...#.##.#.#.....#...#........ +.#................#.##.#.###... +...#.#..#.#.....##.....##....#. +..##.#..#..##.....#....#...#.## +........###.##..#..###.....#..# +..##.....#.......#.#...##...... +#.#..###...##.###.##.#..#...#.. +#..#..#.#...#....#...##.....#.# +#..................#........#.. +#.....#.......#.##....##....#.. +...#.............#.....#...#... +...#...#.##..##.....#........#. +.......#........##....###..##.. +.#....#....#.#..#......#....#.# +..........#..#.#.....##...#.##. +.#...##.#...........#.#.......# +..#.##.....#.###.#............. +..#....###..........#.#.#...... +#.....#.####..#.#......#..#.#.# +...#........#..#............... +.###.#.##.....#.#...........#.. +..#....#..#....#..##....#...... +......#..#.....#.#.##.......#.# +###..#...#.#..#....#..##.###..# +.#....##.###........##...##.#.# +........##..##.#....##..#....#. +...#..#....#.#....#...#...##... +#.....#......#.##........#....# +....#....###.##...#.#.##....#.. +......#.##..#.#..........#...#. +...........#...#....##...#....# +......#.#.........#....#.#.#... +.###..........#.###.##....#...# +...##.......#......#....#....#. +#..#...#.#..####...#......#..#. +....##..#.#.........#.......... +.##.###.##....##.####....#...#. +..##.......#........#...#..#... +....#####..........###....#.... +.#.#..#.#.#....#..#............ +........#.....#....#.......##.. +...........##....##..##.....##. +..###........#.#.#..#....##...# +.....#...........##......#..#.. +...##........#.##.#......##..#. +##..#....#............##..#..#. +.#.....#...##.##..............# +#..##........#...#...#......##. +......##.....#.......####.##..# +...#.#....#...#..#............. +..#...#..##.###..#..#.......##. +##....###.......#...#..#....... +#..#.....###.....#.#.........#. +#.#....#.............#...#..... +..#.#.##..........#.....##.#... +.....##......#..#..#.....#..#.. +##.#..#..#.##......###....#..#. +...#............##...#..##..... +.#..#....#.........#......#.##. +.##.##...#..............#..#.## +...#....#...###...#...#....#..# +..#...#..####..#....#.#...##..# +..............##.##.......##... +..##.#..##...........#.#.#...#. +..................##.####.###.. +.#...........#.......#......#.. +.#.#.#...#....#.........##...## +....#..........#.#....#.#.....# +..........#.#..........#.#..... +...........#.....#.#......#.... +........#..#.#.#.#............. +...###...##...##..####.##...... +.#..#......###.....#...#.....#. +.........##............#.#..... +#.#..#.#.#....###.#.#..#..#..## +..........#...#.##.#..#..#....# +#..#.......##....#..##........# +##.#...#....##.............#... +....#........#......##..#..#.## +.................#.#.#.#.#..... +...........#.#.....#.......#... +#.......#.......#............#. +....#...........#.#.##.....#..# +#...#.....#....#..##...#....... +..#.....#.....#.##.##....#..... +.#.#..#...#..#..##.....##..#... +.#.#....#.........####......... +#...#..####.....#...#..##...... +..#...##.#.....#...#.....##.... +.#...#.....#.#.#......#.......# +..#.....##.#..#.#...##......... +##.#...#..#....#....#.##.##...# +.#..#....#..##.#.......#..#.... +...##.#......#...###.......#... +...#..#.........##.####........ +#.#..#..##...........#..#...... +.#...#.#......#.#..........#... +...###...#.......#.....#.#...## +..#....#.#.##..........##...#.. +.....###.........#.....#..##..# +.......##.....#.#.....#.#..##.. +.#.#.###..##.......##...#...... +......#.....#................## +.#......##..##.#.#...#...#...## +.#...#......#.......#.#........ +.#..........###...#..#...#..... +.........##.....#.#..#..#.#...# +#...#...#.........#..#..#....#. +###.......#.#.....#....##...... +.#..#......#..#...........#..#. +..##....##..##...#......#...... +.#........#....#...#....#.....# +.#.......#...#...#..##.#.#..#.. +#...#........#.##.....#.....#.. +#..##.....#..........#...#...## +............#...............#.. +.#.##...#.....#.#..#..#..#..... +.#.#.#...#........#....#...##.. +##......#.....#.###.#...#.#..#. +.........##..#..#.#...#...#...# +#...#.#....#..#..#.....#....... +.......#.###...#.............#. +..#.....#.#.#..###.#....#.....# +....#...#.#....#.#..........#.. +..#......#.###.#.#..#.....#...# +#............#..##...##......#. +#...........#..#....#.###..###. +.#.##.#.#.......#.............# +..............#................ +..#.#.....#.....#...#......#... +.#.#.#..#..#.#...........##.... +.....##.#......#..#.##....#.... +.......##..#.#.#..#............ +..#.....#.....#.###..#.....#.#. +......##.....#..##.#...#.....#. +...#...#....#..#..#........#... +..#.##..#....#.........#.#..#.. +#....#.....###.....#......#.... +##.....#..#..##.........#.##.## +.#.#....#.#..........#......... +.##.#...#..#.......#.##...#.... +...#...#.....#....#...#.#..#... +.....#....#.....#.....#.#...... +...........#.#.......#.......#. +.........##.###.##........#.... +#..##.....#...#.#.............. +.#...#....##........#.#..#....# +..#...#........#...#..#.##.#..# +........#...#.....##.#.#....#.# +#..#.......###.#....#.#.#...... +.......#...##....#...#..##..#.. +.....##........#.#.#..#....##.. +.#....#..#.#...........#......# +...##....#.##.....##.......#... +.##..#..#....#.#....#..#....##. +..#....#.....###.......#..##..# +....#.......#....##..#....#..## +....#......##..#....#.#...#.#.. +.##.#......##.................. +##.#....#........#..#..#...##.# +.......#..#.#...##.....#.#..... +..##.#...........#.#.#..#.#.#.. +.....#....#......#..#.......#.. +#.#...#.####..##.......#..##... +...#....#.....#.##.#..#.##..#.. +.#.......#......##........##.#. +.......#.#...#..#...#..##.#.... +.#....#........#.#.....##..#..# +#..#.....#..#.............#...# +#...#....#..#...###..#...#.#... +.#..#.....#..........#..##.#### +#.#.#.#.##.#.#.....##.#........ +...#....##....#...#..##.......# +..##.##.#.#........#..........# +..###........###..#..........#. +...#......#..##.#........#..#.. +#.#.#..#........#..#..........# +...#........#..##.#...#.###.... +##......#.####.#....#......#... +.#..#......#................#.. +#.#........#.#.....##.....##... +#...............#..#.......#.#. +.##..#...........##..#..#.#.... +#......#.#.......#.#.#.##..#.## +.....##.#..###.............##.. +....##.........#..#...#........ +.....#.....#.#.#..#.#.......... +#.........#....##.#.##.....#..# +.#.........#......#.#.##.#.#... +##.........#.....#..#.#..#.##.# +....#......##...#.....#..#..### +..#..............#...#..####... +#....#...##.#.......#...#..#... +#.......###.#.#.......#.......# +...##....#.#...........#...###. +...........#..#.#.....#..##..#. +..#.........#..###..#.....#...# +..#.#.....#.#.#...#.#.#......#. +........#.....#.#......##....## +##.#.#...#.#........#.....#...# +........#....#...............#. +##.###......####...#####..#.... +...##...#..#....#........#...#. +...###.#..................##.#. +##.#.......###.......#...#.#... +....#..#.#...#...#....#.#.#..## +....#...........#..#........... +#..#.#..#...#...#..#........... +...#...#.#....#..#....#........ +#....#.......#.##........#..#.. +.....#...#..#................#. +#......#.......#..........##..# +.#....#.#......#.#...#....##..# +...#.##...#......#.#...##...##. +..#...#..##...#...#....#....... +.....#....#.#.#..........#.#... +...#...#..#....#..#.#.......... +......#.#..........##.......#.. +.#...##.#.#...#..##..#...#..... +..#..#.........#........#.#.#.. +#.#..##..#.....##......#.....#. +#..#.....#.#....#...#.#....#.#. +......#........##.#..#...#..... +...#.##.#.#......#.#..##...#..# +....#..###..#..#.....###....##. +.....#...#.#.....#..........#.# +.#...##..##.....#..#...#.#.#... +.##.#......##...##..#...#.....# +.#.##....#...#.##.#.#...#.#...# +....#.#...#....###.#.....#..... +#.....####................#..#. +....#.....#...#.#.......##.#... +.#...##.#...#..#...........#.#. +..#####..#.#...#...##........#. +...#...##........#...#.#....### +........#.#.#..#.....#.......#. +...#...#..##............##..... +#.#..###....###.#...#.#...##.## +..#.##...#......#..#.........## +.##..#..#.....#..#.........#.#. +.#..#.#....#.##...#..#.##....## +..#...#.#...##.#.#...#...#....# +#..........#.......##..##....#. +#...###.#......#....#.........# +#.....#...##.......##....##.... +.##.#..#.##......#.##....#..#.. +............#.#....##.#..#....# +.#.........##.##...#....#.....# +##....##..#..#....##...#.....## +...#.....#...........#.....##.. +......#...#.........#.......#.. +............#...##.#.....#.#.#. +.#........##..........#.....#.# +.###.........#.....#.##...#.... +.##..#...##...#..#..#.##....... diff --git a/day03.ipynb b/day03.ipynb new file mode 100644 index 0000000..bab5106 --- /dev/null +++ b/day03.ipynb @@ -0,0 +1,525 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "trees = open('day03-input.txt')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "trees_matrix = []" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "for line in trees:\n", + " trees_matrix.append(line.strip())" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['.......#..#....#...#...#......#',\n", + " '..##..#...##.###.#..#.....#.#..',\n", + " '#..#.#....#......#..#.........#',\n", + " '.#..##...#........#....#..#..#.',\n", + " '#.#.#....###...#........#.....#',\n", + " '.#...#.#.##.#.##...#.#.........',\n", + " '####......#.......###.##.#.....',\n", + " '..#...........#...#.#.#........',\n", + " '.#.......#....###.####..#......',\n", + " '...##........#....##.......##..',\n", + " '.###......##.#......##....#.#.#',\n", + " '........#.#......##...#......#.',\n", + " '#....##.#..#...#.......#.......',\n", + " '.#..##........##.........#....#',\n", + " '.#..#..#...#....#.#......#.#...',\n", + " '..#.#......##.#.......#....##..',\n", + " '......##......#.#..##.#..#...#.',\n", + " '.....##.......#.#....#.#.......',\n", + " '........#.....#.....#..###.#...',\n", + " '#........#..#.....#...#.#.#..#.',\n", + " '.#..#.....#...#........#.....#.',\n", + " '.#.#.....#.....#...#...........',\n", + " '.....#.#..#..#...#..#..#..##..#',\n", + " '##.#...#....#..#.##..#.....#.#.',\n", + " '#.......####......#..#.#....#..',\n", + " '......#.#...####.........#.#..#',\n", + " '.#.........#..#.#...#..........',\n", + " '...#####.#....#.#..#......#.#.#',\n", + " '##....#.###....##...##..#.....#',\n", + " '...........####.##.#....##.##..',\n", + " '#.#.#..........#.#..##.#.######',\n", + " '##...#..#...........###..#....#',\n", + " '.#.#.#...##..........##.#...#..',\n", + " '...#.#........#..##...#....#...',\n", + " '......#..#...#..##....#.......#',\n", + " '.#..#.......#..#......##....##.',\n", + " '.......#.......#........#..##..',\n", + " '...#...#...#.##......#.##.#....',\n", + " '.........#.........#.#.#.##....',\n", + " '..#...................#....#..#',\n", + " '.........#..#.....#.#...#....#.',\n", + " '#.#.#...#........#..###.#......',\n", + " '#.#.#.####......##...#...#....#',\n", + " '#...........##..#.#.#....#..#..',\n", + " '........#..#.#...........##.#.#',\n", + " '.#.........#...........#..#....',\n", + " '#............##.#..#....##...##',\n", + " '.#....##..#.#....#.......#..#..',\n", + " '..#.#...#.#......####.......#..',\n", + " '...#.#.......###......#.....#..',\n", + " '#......#.......#.#...#.#..##...',\n", + " '...#.....#...##.#.....#.#......',\n", + " '#.#.#............#..#......#..#',\n", + " '....#...#...##.##.##...##.#....',\n", + " '..##........#..#........#...##.',\n", + " '.......#..#...#.........#.....#',\n", + " '...........#.#......#...#......',\n", + " '...##..##..##..###..#..#..#..#.',\n", + " '#..##.......##..#....#....#.#..',\n", + " '#.#.##.#..##.....#....#.#......',\n", + " '....#..##......#.#..#....#....#',\n", + " '.#.#.........##...#......##.##.',\n", + " '##...........#..#.....#.###....',\n", + " '.#.###........#...#....##..#...',\n", + " '......##.....#.................',\n", + " '.#.##..#.#.......#......#.#.#..',\n", + " '.#...#....#.##..........##.##..',\n", + " '#...##......####.#....#....#...',\n", + " '.#...#.##.#.#.....#...#........',\n", + " '.#................#.##.#.###...',\n", + " '...#.#..#.#.....##.....##....#.',\n", + " '..##.#..#..##.....#....#...#.##',\n", + " '........###.##..#..###.....#..#',\n", + " '..##.....#.......#.#...##......',\n", + " '#.#..###...##.###.##.#..#...#..',\n", + " '#..#..#.#...#....#...##.....#.#',\n", + " '#..................#........#..',\n", + " '#.....#.......#.##....##....#..',\n", + " '...#.............#.....#...#...',\n", + " '...#...#.##..##.....#........#.',\n", + " '.......#........##....###..##..',\n", + " '.#....#....#.#..#......#....#.#',\n", + " '..........#..#.#.....##...#.##.',\n", + " '.#...##.#...........#.#.......#',\n", + " '..#.##.....#.###.#.............',\n", + " '..#....###..........#.#.#......',\n", + " '#.....#.####..#.#......#..#.#.#',\n", + " '...#........#..#...............',\n", + " '.###.#.##.....#.#...........#..',\n", + " '..#....#..#....#..##....#......',\n", + " '......#..#.....#.#.##.......#.#',\n", + " '###..#...#.#..#....#..##.###..#',\n", + " '.#....##.###........##...##.#.#',\n", + " '........##..##.#....##..#....#.',\n", + " '...#..#....#.#....#...#...##...',\n", + " '#.....#......#.##........#....#',\n", + " '....#....###.##...#.#.##....#..',\n", + " '......#.##..#.#..........#...#.',\n", + " '...........#...#....##...#....#',\n", + " '......#.#.........#....#.#.#...',\n", + " '.###..........#.###.##....#...#',\n", + " '...##.......#......#....#....#.',\n", + " '#..#...#.#..####...#......#..#.',\n", + " '....##..#.#.........#..........',\n", + " '.##.###.##....##.####....#...#.',\n", + " '..##.......#........#...#..#...',\n", + " '....#####..........###....#....',\n", + " '.#.#..#.#.#....#..#............',\n", + " '........#.....#....#.......##..',\n", + " '...........##....##..##.....##.',\n", + " '..###........#.#.#..#....##...#',\n", + " '.....#...........##......#..#..',\n", + " '...##........#.##.#......##..#.',\n", + " '##..#....#............##..#..#.',\n", + " '.#.....#...##.##..............#',\n", + " '#..##........#...#...#......##.',\n", + " '......##.....#.......####.##..#',\n", + " '...#.#....#...#..#.............',\n", + " '..#...#..##.###..#..#.......##.',\n", + " '##....###.......#...#..#.......',\n", + " '#..#.....###.....#.#.........#.',\n", + " '#.#....#.............#...#.....',\n", + " '..#.#.##..........#.....##.#...',\n", + " '.....##......#..#..#.....#..#..',\n", + " '##.#..#..#.##......###....#..#.',\n", + " '...#............##...#..##.....',\n", + " '.#..#....#.........#......#.##.',\n", + " '.##.##...#..............#..#.##',\n", + " '...#....#...###...#...#....#..#',\n", + " '..#...#..####..#....#.#...##..#',\n", + " '..............##.##.......##...',\n", + " '..##.#..##...........#.#.#...#.',\n", + " '..................##.####.###..',\n", + " '.#...........#.......#......#..',\n", + " '.#.#.#...#....#.........##...##',\n", + " '....#..........#.#....#.#.....#',\n", + " '..........#.#..........#.#.....',\n", + " '...........#.....#.#......#....',\n", + " '........#..#.#.#.#.............',\n", + " '...###...##...##..####.##......',\n", + " '.#..#......###.....#...#.....#.',\n", + " '.........##............#.#.....',\n", + " '#.#..#.#.#....###.#.#..#..#..##',\n", + " '..........#...#.##.#..#..#....#',\n", + " '#..#.......##....#..##........#',\n", + " '##.#...#....##.............#...',\n", + " '....#........#......##..#..#.##',\n", + " '.................#.#.#.#.#.....',\n", + " '...........#.#.....#.......#...',\n", + " '#.......#.......#............#.',\n", + " '....#...........#.#.##.....#..#',\n", + " '#...#.....#....#..##...#.......',\n", + " '..#.....#.....#.##.##....#.....',\n", + " '.#.#..#...#..#..##.....##..#...',\n", + " '.#.#....#.........####.........',\n", + " '#...#..####.....#...#..##......',\n", + " '..#...##.#.....#...#.....##....',\n", + " '.#...#.....#.#.#......#.......#',\n", + " '..#.....##.#..#.#...##.........',\n", + " '##.#...#..#....#....#.##.##...#',\n", + " '.#..#....#..##.#.......#..#....',\n", + " '...##.#......#...###.......#...',\n", + " '...#..#.........##.####........',\n", + " '#.#..#..##...........#..#......',\n", + " '.#...#.#......#.#..........#...',\n", + " '...###...#.......#.....#.#...##',\n", + " '..#....#.#.##..........##...#..',\n", + " '.....###.........#.....#..##..#',\n", + " '.......##.....#.#.....#.#..##..',\n", + " '.#.#.###..##.......##...#......',\n", + " '......#.....#................##',\n", + " '.#......##..##.#.#...#...#...##',\n", + " '.#...#......#.......#.#........',\n", + " '.#..........###...#..#...#.....',\n", + " '.........##.....#.#..#..#.#...#',\n", + " '#...#...#.........#..#..#....#.',\n", + " '###.......#.#.....#....##......',\n", + " '.#..#......#..#...........#..#.',\n", + " '..##....##..##...#......#......',\n", + " '.#........#....#...#....#.....#',\n", + " '.#.......#...#...#..##.#.#..#..',\n", + " '#...#........#.##.....#.....#..',\n", + " '#..##.....#..........#...#...##',\n", + " '............#...............#..',\n", + " '.#.##...#.....#.#..#..#..#.....',\n", + " '.#.#.#...#........#....#...##..',\n", + " '##......#.....#.###.#...#.#..#.',\n", + " '.........##..#..#.#...#...#...#',\n", + " '#...#.#....#..#..#.....#.......',\n", + " '.......#.###...#.............#.',\n", + " '..#.....#.#.#..###.#....#.....#',\n", + " '....#...#.#....#.#..........#..',\n", + " '..#......#.###.#.#..#.....#...#',\n", + " '#............#..##...##......#.',\n", + " '#...........#..#....#.###..###.',\n", + " '.#.##.#.#.......#.............#',\n", + " '..............#................',\n", + " '..#.#.....#.....#...#......#...',\n", + " '.#.#.#..#..#.#...........##....',\n", + " '.....##.#......#..#.##....#....',\n", + " '.......##..#.#.#..#............',\n", + " '..#.....#.....#.###..#.....#.#.',\n", + " '......##.....#..##.#...#.....#.',\n", + " '...#...#....#..#..#........#...',\n", + " '..#.##..#....#.........#.#..#..',\n", + " '#....#.....###.....#......#....',\n", + " '##.....#..#..##.........#.##.##',\n", + " '.#.#....#.#..........#.........',\n", + " '.##.#...#..#.......#.##...#....',\n", + " '...#...#.....#....#...#.#..#...',\n", + " '.....#....#.....#.....#.#......',\n", + " '...........#.#.......#.......#.',\n", + " '.........##.###.##........#....',\n", + " '#..##.....#...#.#..............',\n", + " '.#...#....##........#.#..#....#',\n", + " '..#...#........#...#..#.##.#..#',\n", + " '........#...#.....##.#.#....#.#',\n", + " '#..#.......###.#....#.#.#......',\n", + " '.......#...##....#...#..##..#..',\n", + " '.....##........#.#.#..#....##..',\n", + " '.#....#..#.#...........#......#',\n", + " '...##....#.##.....##.......#...',\n", + " '.##..#..#....#.#....#..#....##.',\n", + " '..#....#.....###.......#..##..#',\n", + " '....#.......#....##..#....#..##',\n", + " '....#......##..#....#.#...#.#..',\n", + " '.##.#......##..................',\n", + " '##.#....#........#..#..#...##.#',\n", + " '.......#..#.#...##.....#.#.....',\n", + " '..##.#...........#.#.#..#.#.#..',\n", + " '.....#....#......#..#.......#..',\n", + " '#.#...#.####..##.......#..##...',\n", + " '...#....#.....#.##.#..#.##..#..',\n", + " '.#.......#......##........##.#.',\n", + " '.......#.#...#..#...#..##.#....',\n", + " '.#....#........#.#.....##..#..#',\n", + " '#..#.....#..#.............#...#',\n", + " '#...#....#..#...###..#...#.#...',\n", + " '.#..#.....#..........#..##.####',\n", + " '#.#.#.#.##.#.#.....##.#........',\n", + " '...#....##....#...#..##.......#',\n", + " '..##.##.#.#........#..........#',\n", + " '..###........###..#..........#.',\n", + " '...#......#..##.#........#..#..',\n", + " '#.#.#..#........#..#..........#',\n", + " '...#........#..##.#...#.###....',\n", + " '##......#.####.#....#......#...',\n", + " '.#..#......#................#..',\n", + " '#.#........#.#.....##.....##...',\n", + " '#...............#..#.......#.#.',\n", + " '.##..#...........##..#..#.#....',\n", + " '#......#.#.......#.#.#.##..#.##',\n", + " '.....##.#..###.............##..',\n", + " '....##.........#..#...#........',\n", + " '.....#.....#.#.#..#.#..........',\n", + " '#.........#....##.#.##.....#..#',\n", + " '.#.........#......#.#.##.#.#...',\n", + " '##.........#.....#..#.#..#.##.#',\n", + " '....#......##...#.....#..#..###',\n", + " '..#..............#...#..####...',\n", + " '#....#...##.#.......#...#..#...',\n", + " '#.......###.#.#.......#.......#',\n", + " '...##....#.#...........#...###.',\n", + " '...........#..#.#.....#..##..#.',\n", + " '..#.........#..###..#.....#...#',\n", + " '..#.#.....#.#.#...#.#.#......#.',\n", + " '........#.....#.#......##....##',\n", + " '##.#.#...#.#........#.....#...#',\n", + " '........#....#...............#.',\n", + " '##.###......####...#####..#....',\n", + " '...##...#..#....#........#...#.',\n", + " '...###.#..................##.#.',\n", + " '##.#.......###.......#...#.#...',\n", + " '....#..#.#...#...#....#.#.#..##',\n", + " '....#...........#..#...........',\n", + " '#..#.#..#...#...#..#...........',\n", + " '...#...#.#....#..#....#........',\n", + " '#....#.......#.##........#..#..',\n", + " '.....#...#..#................#.',\n", + " '#......#.......#..........##..#',\n", + " '.#....#.#......#.#...#....##..#',\n", + " '...#.##...#......#.#...##...##.',\n", + " '..#...#..##...#...#....#.......',\n", + " '.....#....#.#.#..........#.#...',\n", + " '...#...#..#....#..#.#..........',\n", + " '......#.#..........##.......#..',\n", + " '.#...##.#.#...#..##..#...#.....',\n", + " '..#..#.........#........#.#.#..',\n", + " '#.#..##..#.....##......#.....#.',\n", + " '#..#.....#.#....#...#.#....#.#.',\n", + " '......#........##.#..#...#.....',\n", + " '...#.##.#.#......#.#..##...#..#',\n", + " '....#..###..#..#.....###....##.',\n", + " '.....#...#.#.....#..........#.#',\n", + " '.#...##..##.....#..#...#.#.#...',\n", + " '.##.#......##...##..#...#.....#',\n", + " '.#.##....#...#.##.#.#...#.#...#',\n", + " '....#.#...#....###.#.....#.....',\n", + " '#.....####................#..#.',\n", + " '....#.....#...#.#.......##.#...',\n", + " '.#...##.#...#..#...........#.#.',\n", + " '..#####..#.#...#...##........#.',\n", + " '...#...##........#...#.#....###',\n", + " '........#.#.#..#.....#.......#.',\n", + " '...#...#..##............##.....',\n", + " '#.#..###....###.#...#.#...##.##',\n", + " '..#.##...#......#..#.........##',\n", + " '.##..#..#.....#..#.........#.#.',\n", + " '.#..#.#....#.##...#..#.##....##',\n", + " '..#...#.#...##.#.#...#...#....#',\n", + " '#..........#.......##..##....#.',\n", + " '#...###.#......#....#.........#',\n", + " '#.....#...##.......##....##....',\n", + " '.##.#..#.##......#.##....#..#..',\n", + " '............#.#....##.#..#....#',\n", + " '.#.........##.##...#....#.....#',\n", + " '##....##..#..#....##...#.....##',\n", + " '...#.....#...........#.....##..',\n", + " '......#...#.........#.......#..',\n", + " '............#...##.#.....#.#.#.',\n", + " '.#........##..........#.....#.#',\n", + " '.###.........#.....#.##...#....',\n", + " '.##..#...##...#..#..#.##.......']" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trees_matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'.'" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trees_matrix[0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'#'" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trees_matrix[1][3]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "move_x = 3\n", + "move_y = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "234\n" + ] + } + ], + "source": [ + "x = 0\n", + "y = 0\n", + "count_trees = 0\n", + "while y < len(trees_matrix):\n", + " if trees_matrix[y][x] == '#':\n", + " count_trees += 1\n", + " x += move_x\n", + " if x >= len(trees_matrix[y]):\n", + " x -= len(trees_matrix[y])\n", + " y += move_y\n", + "\n", + "print(count_trees)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "def check_slope(move_x, move_y):\n", + " x = 0\n", + " y = 0\n", + " count_trees = 0\n", + " while y < len(trees_matrix):\n", + " if trees_matrix[y][x] == '#':\n", + " count_trees += 1\n", + " x += move_x\n", + " if x >= len(trees_matrix[y]):\n", + " x -= len(trees_matrix[y])\n", + " y += move_y\n", + "\n", + " return count_trees" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5813773056" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "check_slope(1, 1) * \\\n", + "check_slope(3, 1) * \\\n", + "check_slope(5, 1) * \\\n", + "check_slope(7, 1) * \\\n", + "check_slope(1, 2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}