complete day 3 challenge

This commit is contained in:
Vicky Steeves 2020-12-03 16:41:33 -05:00
parent 9543a4582c
commit 0782069286
4 changed files with 863 additions and 8 deletions

View File

@ -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,

323
day03-input.txt Normal file
View File

@ -0,0 +1,323 @@
.......#..#....#...#...#......#
..##..#...##.###.#..#.....#.#..
#..#.#....#......#..#.........#
.#..##...#........#....#..#..#.
#.#.#....###...#........#.....#
.#...#.#.##.#.##...#.#.........
####......#.......###.##.#.....
..#...........#...#.#.#........
.#.......#....###.####..#......
...##........#....##.......##..
.###......##.#......##....#.#.#
........#.#......##...#......#.
#....##.#..#...#.......#.......
.#..##........##.........#....#
.#..#..#...#....#.#......#.#...
..#.#......##.#.......#....##..
......##......#.#..##.#..#...#.
.....##.......#.#....#.#.......
........#.....#.....#..###.#...
#........#..#.....#...#.#.#..#.
.#..#.....#...#........#.....#.
.#.#.....#.....#...#...........
.....#.#..#..#...#..#..#..##..#
##.#...#....#..#.##..#.....#.#.
#.......####......#..#.#....#..
......#.#...####.........#.#..#
.#.........#..#.#...#..........
...#####.#....#.#..#......#.#.#
##....#.###....##...##..#.....#
...........####.##.#....##.##..
#.#.#..........#.#..##.#.######
##...#..#...........###..#....#
.#.#.#...##..........##.#...#..
...#.#........#..##...#....#...
......#..#...#..##....#.......#
.#..#.......#..#......##....##.
.......#.......#........#..##..
...#...#...#.##......#.##.#....
.........#.........#.#.#.##....
..#...................#....#..#
.........#..#.....#.#...#....#.
#.#.#...#........#..###.#......
#.#.#.####......##...#...#....#
#...........##..#.#.#....#..#..
........#..#.#...........##.#.#
.#.........#...........#..#....
#............##.#..#....##...##
.#....##..#.#....#.......#..#..
..#.#...#.#......####.......#..
...#.#.......###......#.....#..
#......#.......#.#...#.#..##...
...#.....#...##.#.....#.#......
#.#.#............#..#......#..#
....#...#...##.##.##...##.#....
..##........#..#........#...##.
.......#..#...#.........#.....#
...........#.#......#...#......
...##..##..##..###..#..#..#..#.
#..##.......##..#....#....#.#..
#.#.##.#..##.....#....#.#......
....#..##......#.#..#....#....#
.#.#.........##...#......##.##.
##...........#..#.....#.###....
.#.###........#...#....##..#...
......##.....#.................
.#.##..#.#.......#......#.#.#..
.#...#....#.##..........##.##..
#...##......####.#....#....#...
.#...#.##.#.#.....#...#........
.#................#.##.#.###...
...#.#..#.#.....##.....##....#.
..##.#..#..##.....#....#...#.##
........###.##..#..###.....#..#
..##.....#.......#.#...##......
#.#..###...##.###.##.#..#...#..
#..#..#.#...#....#...##.....#.#
#..................#........#..
#.....#.......#.##....##....#..
...#.............#.....#...#...
...#...#.##..##.....#........#.
.......#........##....###..##..
.#....#....#.#..#......#....#.#
..........#..#.#.....##...#.##.
.#...##.#...........#.#.......#
..#.##.....#.###.#.............
..#....###..........#.#.#......
#.....#.####..#.#......#..#.#.#
...#........#..#...............
.###.#.##.....#.#...........#..
..#....#..#....#..##....#......
......#..#.....#.#.##.......#.#
###..#...#.#..#....#..##.###..#
.#....##.###........##...##.#.#
........##..##.#....##..#....#.
...#..#....#.#....#...#...##...
#.....#......#.##........#....#
....#....###.##...#.#.##....#..
......#.##..#.#..........#...#.
...........#...#....##...#....#
......#.#.........#....#.#.#...
.###..........#.###.##....#...#
...##.......#......#....#....#.
#..#...#.#..####...#......#..#.
....##..#.#.........#..........
.##.###.##....##.####....#...#.
..##.......#........#...#..#...
....#####..........###....#....
.#.#..#.#.#....#..#............
........#.....#....#.......##..
...........##....##..##.....##.
..###........#.#.#..#....##...#
.....#...........##......#..#..
...##........#.##.#......##..#.
##..#....#............##..#..#.
.#.....#...##.##..............#
#..##........#...#...#......##.
......##.....#.......####.##..#
...#.#....#...#..#.............
..#...#..##.###..#..#.......##.
##....###.......#...#..#.......
#..#.....###.....#.#.........#.
#.#....#.............#...#.....
..#.#.##..........#.....##.#...
.....##......#..#..#.....#..#..
##.#..#..#.##......###....#..#.
...#............##...#..##.....
.#..#....#.........#......#.##.
.##.##...#..............#..#.##
...#....#...###...#...#....#..#
..#...#..####..#....#.#...##..#
..............##.##.......##...
..##.#..##...........#.#.#...#.
..................##.####.###..
.#...........#.......#......#..
.#.#.#...#....#.........##...##
....#..........#.#....#.#.....#
..........#.#..........#.#.....
...........#.....#.#......#....
........#..#.#.#.#.............
...###...##...##..####.##......
.#..#......###.....#...#.....#.
.........##............#.#.....
#.#..#.#.#....###.#.#..#..#..##
..........#...#.##.#..#..#....#
#..#.......##....#..##........#
##.#...#....##.............#...
....#........#......##..#..#.##
.................#.#.#.#.#.....
...........#.#.....#.......#...
#.......#.......#............#.
....#...........#.#.##.....#..#
#...#.....#....#..##...#.......
..#.....#.....#.##.##....#.....
.#.#..#...#..#..##.....##..#...
.#.#....#.........####.........
#...#..####.....#...#..##......
..#...##.#.....#...#.....##....
.#...#.....#.#.#......#.......#
..#.....##.#..#.#...##.........
##.#...#..#....#....#.##.##...#
.#..#....#..##.#.......#..#....
...##.#......#...###.......#...
...#..#.........##.####........
#.#..#..##...........#..#......
.#...#.#......#.#..........#...
...###...#.......#.....#.#...##
..#....#.#.##..........##...#..
.....###.........#.....#..##..#
.......##.....#.#.....#.#..##..
.#.#.###..##.......##...#......
......#.....#................##
.#......##..##.#.#...#...#...##
.#...#......#.......#.#........
.#..........###...#..#...#.....
.........##.....#.#..#..#.#...#
#...#...#.........#..#..#....#.
###.......#.#.....#....##......
.#..#......#..#...........#..#.
..##....##..##...#......#......
.#........#....#...#....#.....#
.#.......#...#...#..##.#.#..#..
#...#........#.##.....#.....#..
#..##.....#..........#...#...##
............#...............#..
.#.##...#.....#.#..#..#..#.....
.#.#.#...#........#....#...##..
##......#.....#.###.#...#.#..#.
.........##..#..#.#...#...#...#
#...#.#....#..#..#.....#.......
.......#.###...#.............#.
..#.....#.#.#..###.#....#.....#
....#...#.#....#.#..........#..
..#......#.###.#.#..#.....#...#
#............#..##...##......#.
#...........#..#....#.###..###.
.#.##.#.#.......#.............#
..............#................
..#.#.....#.....#...#......#...
.#.#.#..#..#.#...........##....
.....##.#......#..#.##....#....
.......##..#.#.#..#............
..#.....#.....#.###..#.....#.#.
......##.....#..##.#...#.....#.
...#...#....#..#..#........#...
..#.##..#....#.........#.#..#..
#....#.....###.....#......#....
##.....#..#..##.........#.##.##
.#.#....#.#..........#.........
.##.#...#..#.......#.##...#....
...#...#.....#....#...#.#..#...
.....#....#.....#.....#.#......
...........#.#.......#.......#.
.........##.###.##........#....
#..##.....#...#.#..............
.#...#....##........#.#..#....#
..#...#........#...#..#.##.#..#
........#...#.....##.#.#....#.#
#..#.......###.#....#.#.#......
.......#...##....#...#..##..#..
.....##........#.#.#..#....##..
.#....#..#.#...........#......#
...##....#.##.....##.......#...
.##..#..#....#.#....#..#....##.
..#....#.....###.......#..##..#
....#.......#....##..#....#..##
....#......##..#....#.#...#.#..
.##.#......##..................
##.#....#........#..#..#...##.#
.......#..#.#...##.....#.#.....
..##.#...........#.#.#..#.#.#..
.....#....#......#..#.......#..
#.#...#.####..##.......#..##...
...#....#.....#.##.#..#.##..#..
.#.......#......##........##.#.
.......#.#...#..#...#..##.#....
.#....#........#.#.....##..#..#
#..#.....#..#.............#...#
#...#....#..#...###..#...#.#...
.#..#.....#..........#..##.####
#.#.#.#.##.#.#.....##.#........
...#....##....#...#..##.......#
..##.##.#.#........#..........#
..###........###..#..........#.
...#......#..##.#........#..#..
#.#.#..#........#..#..........#
...#........#..##.#...#.###....
##......#.####.#....#......#...
.#..#......#................#..
#.#........#.#.....##.....##...
#...............#..#.......#.#.
.##..#...........##..#..#.#....
#......#.#.......#.#.#.##..#.##
.....##.#..###.............##..
....##.........#..#...#........
.....#.....#.#.#..#.#..........
#.........#....##.#.##.....#..#
.#.........#......#.#.##.#.#...
##.........#.....#..#.#..#.##.#
....#......##...#.....#..#..###
..#..............#...#..####...
#....#...##.#.......#...#..#...
#.......###.#.#.......#.......#
...##....#.#...........#...###.
...........#..#.#.....#..##..#.
..#.........#..###..#.....#...#
..#.#.....#.#.#...#.#.#......#.
........#.....#.#......##....##
##.#.#...#.#........#.....#...#
........#....#...............#.
##.###......####...#####..#....
...##...#..#....#........#...#.
...###.#..................##.#.
##.#.......###.......#...#.#...
....#..#.#...#...#....#.#.#..##
....#...........#..#...........
#..#.#..#...#...#..#...........
...#...#.#....#..#....#........
#....#.......#.##........#..#..
.....#...#..#................#.
#......#.......#..........##..#
.#....#.#......#.#...#....##..#
...#.##...#......#.#...##...##.
..#...#..##...#...#....#.......
.....#....#.#.#..........#.#...
...#...#..#....#..#.#..........
......#.#..........##.......#..
.#...##.#.#...#..##..#...#.....
..#..#.........#........#.#.#..
#.#..##..#.....##......#.....#.
#..#.....#.#....#...#.#....#.#.
......#........##.#..#...#.....
...#.##.#.#......#.#..##...#..#
....#..###..#..#.....###....##.
.....#...#.#.....#..........#.#
.#...##..##.....#..#...#.#.#...
.##.#......##...##..#...#.....#
.#.##....#...#.##.#.#...#.#...#
....#.#...#....###.#.....#.....
#.....####................#..#.
....#.....#...#.#.......##.#...
.#...##.#...#..#...........#.#.
..#####..#.#...#...##........#.
...#...##........#...#.#....###
........#.#.#..#.....#.......#.
...#...#..##............##.....
#.#..###....###.#...#.#...##.##
..#.##...#......#..#.........##
.##..#..#.....#..#.........#.#.
.#..#.#....#.##...#..#.##....##
..#...#.#...##.#.#...#...#....#
#..........#.......##..##....#.
#...###.#......#....#.........#
#.....#...##.......##....##....
.##.#..#.##......#.##....#..#..
............#.#....##.#..#....#
.#.........##.##...#....#.....#
##....##..#..#....##...#.....##
...#.....#...........#.....##..
......#...#.........#.......#..
............#...##.#.....#.#.#.
.#........##..........#.....#.#
.###.........#.....#.##...#....
.##..#...##...#..#..#.##.......

525
day03.ipynb Normal file
View File

@ -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
}