{ "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 }