Day 3
This commit is contained in:
parent
dfca8fceab
commit
2275a65df5
3 changed files with 364 additions and 0 deletions
323
2020/3/data.txt
Normal file
323
2020/3/data.txt
Normal file
|
@ -0,0 +1,323 @@
|
||||||
|
...........#..............##...
|
||||||
|
...#....................#......
|
||||||
|
.....####...........#.#..#.#...
|
||||||
|
....##.#.......................
|
||||||
|
.......#.##......#.###.........
|
||||||
|
.#.....#.......##.......#.....#
|
||||||
|
...........##....##.#....#.....
|
||||||
|
......#.........#....#.........
|
||||||
|
..###....#.........#....#.#....
|
||||||
|
....#....#.#..#..#.........#.#.
|
||||||
|
..........................#...#
|
||||||
|
.##...........#...#.#.......#..
|
||||||
|
#....##...#.#....#.............
|
||||||
|
....#..##......##..#.#....#....
|
||||||
|
#..........#.............#..#.#
|
||||||
|
...#.####.....#..#.#.#..#...#..
|
||||||
|
..........#......#........#..#.
|
||||||
|
............#.....#..#..#....#.
|
||||||
|
.................#...#.........
|
||||||
|
..#...#...................#....
|
||||||
|
..............##...#...........
|
||||||
|
..........................#..#.
|
||||||
|
#...#...#............#...#.....
|
||||||
|
.................#..##.......#.
|
||||||
|
............#....#.............
|
||||||
|
.#......#.#...#....#...#.......
|
||||||
|
.....#.....##..##.....#.......#
|
||||||
|
.#..#..##...............#..#...
|
||||||
|
#...#...##............#........
|
||||||
|
.......#....#.......#..........
|
||||||
|
...............................
|
||||||
|
#................#...#.........
|
||||||
|
...#...#..#..#.............##.#
|
||||||
|
......#........#..............#
|
||||||
|
...#.....##.#...#...#..........
|
||||||
|
.........#..#........##.#...##.
|
||||||
|
#.........##..#.......#........
|
||||||
|
........##.#.#.................
|
||||||
|
.#....#............###....#....
|
||||||
|
...#.##....#.....##..#..#....#.
|
||||||
|
....#..#........##..#...#..##..
|
||||||
|
..........#............#.......
|
||||||
|
.........#........##....#..##..
|
||||||
|
#....#.........#.#.......#..#..
|
||||||
|
...#....#......##.#............
|
||||||
|
........#..#...............#...
|
||||||
|
..............#.....#........#.
|
||||||
|
......#..#.#........#..#..#.##.
|
||||||
|
..#........###....#.#..........
|
||||||
|
...#..#...#.#....##..#........#
|
||||||
|
........#..#..............#....
|
||||||
|
#.####.................#....##.
|
||||||
|
.#................#............
|
||||||
|
....#....#....#................
|
||||||
|
#......#........##....#...#....
|
||||||
|
......#..##..#..###...#.#.#....
|
||||||
|
.#..........##.................
|
||||||
|
...#...#....#...#.....#.....#..
|
||||||
|
............#......##.........#
|
||||||
|
..............##...............
|
||||||
|
##....#....#...#...#....#..###.
|
||||||
|
...................#.......##..
|
||||||
|
#.....##........#....#.........
|
||||||
|
...#.......#...........#.......
|
||||||
|
...............##..............
|
||||||
|
##.......#......#.....#........
|
||||||
|
#....#..#..##..#.......#..#..#.
|
||||||
|
.....#.............#.......#...
|
||||||
|
......#..#........#.......#.#..
|
||||||
|
..#...#...........#.##.........
|
||||||
|
..#................####.#..#...
|
||||||
|
......##....#.........#........
|
||||||
|
..#..#.......#...##....#......#
|
||||||
|
#.#..........#..............#.#
|
||||||
|
.#.#..............#.##...#.....
|
||||||
|
................#.....#.#......
|
||||||
|
##.........#.........#.....#...
|
||||||
|
....#.#.....................#..
|
||||||
|
..#..#..#........#.......#.....
|
||||||
|
.....#..#.#....#....#.....#....
|
||||||
|
..####....#.#.........#........
|
||||||
|
#..##...##..#.#............#..#
|
||||||
|
.#........#..##.#.....#......##
|
||||||
|
.##.##.....##....#.#...........
|
||||||
|
....#..#.#..##............#.#..
|
||||||
|
........#.#...#....#.........#.
|
||||||
|
.....#.#.#.....#....#.....##...
|
||||||
|
#...#..#....##..#..............
|
||||||
|
..#...#....#...##..#.......#...
|
||||||
|
.#....##.......................
|
||||||
|
.........#............##.#..#..
|
||||||
|
....#................#...#.#...
|
||||||
|
...................#..#...#....
|
||||||
|
#..#...................#.......
|
||||||
|
..##..............#..........##
|
||||||
|
...#.##......#.............#...
|
||||||
|
.........#.#.........#.........
|
||||||
|
...###......#.................#
|
||||||
|
..........#....##..............
|
||||||
|
.##..#....#.........#.#........
|
||||||
|
.........#.......#.......#.#...
|
||||||
|
#........#............#......#.
|
||||||
|
....................#..........
|
||||||
|
.......#...##..........#...#...
|
||||||
|
....#.#.......#.#...##..#.#....
|
||||||
|
...#..........#..............#.
|
||||||
|
........##..............#......
|
||||||
|
......#...##......#....##......
|
||||||
|
....#.....#.#.##..............#
|
||||||
|
...#...........#.#.............
|
||||||
|
...........#......#.#..........
|
||||||
|
...#.#......#......#...#...#...
|
||||||
|
..#.......................#....
|
||||||
|
...#...#..#..................#.
|
||||||
|
##.....#.....#..#..#.....#...#.
|
||||||
|
.#..#.......##.#.#.............
|
||||||
|
......##.......##............#.
|
||||||
|
.......#..#..#.......#....#.#..
|
||||||
|
......#.....##..##...#........#
|
||||||
|
.....#........#.##..........#..
|
||||||
|
#....##............#........#..
|
||||||
|
.....#..#...#............#...#.
|
||||||
|
##.#....#........#.............
|
||||||
|
.##...............##......#.#..
|
||||||
|
###..#..#.......#.#..........#.
|
||||||
|
.....#...........#...##........
|
||||||
|
..#.#.#.........#.....#....#...
|
||||||
|
.....#....##.......#..#.#......
|
||||||
|
......#.....#...#..#...##..#...
|
||||||
|
.....#....#................#...
|
||||||
|
......#....#.#...##......##.#.#
|
||||||
|
.....###.............#.........
|
||||||
|
.................#......#####..
|
||||||
|
.#.......#..........#.#....##..
|
||||||
|
..#..#.......#.....#..#......##
|
||||||
|
..........#.#.##.......##....#.
|
||||||
|
##...#...##.##......#..###.....
|
||||||
|
..#..#..#......#....#..........
|
||||||
|
..#...#....#......#....#....#.#
|
||||||
|
.#...#........#.....#......#..#
|
||||||
|
#.........#......#.##.##.......
|
||||||
|
#.##..#.............#.....#....
|
||||||
|
....#.......#..#..##...##......
|
||||||
|
...#.............#.#......#....
|
||||||
|
#.....#..........##...##.....#.
|
||||||
|
...............#........#....#.
|
||||||
|
#.....#...#..#.............##..
|
||||||
|
.#....##.#.......#.#..........#
|
||||||
|
....#....#.#.....#....#......#.
|
||||||
|
......#......#.................
|
||||||
|
.#.#..#.#.#...#...#..#.##.#..##
|
||||||
|
.............#.....#...........
|
||||||
|
............#...#..#..#.....#..
|
||||||
|
.#..........#.......#....#.....
|
||||||
|
......#..###.#...#.............
|
||||||
|
......#..........#.............
|
||||||
|
....#.................#..#.#.#.
|
||||||
|
...##.##.#....##.##............
|
||||||
|
####......#........###......#..
|
||||||
|
..#.......#.#..#.##............
|
||||||
|
.....#.....#.#.......#.....#...
|
||||||
|
.....#..........#.#............
|
||||||
|
#.....#.............#......##..
|
||||||
|
......##..........##....#......
|
||||||
|
.#..............#..........#...
|
||||||
|
......#..#...#........#..#....#
|
||||||
|
.#......#.......#..#...........
|
||||||
|
..#..#....#.#.......#....##..#.
|
||||||
|
........#.#................#...
|
||||||
|
#.......#.##.#......#...#.....#
|
||||||
|
..#...#.#.....##...............
|
||||||
|
..........#.....##.............
|
||||||
|
.......#............#........#.
|
||||||
|
...#............#......#......#
|
||||||
|
.#..#.......#...#...#..#..#....
|
||||||
|
#....#.#...#......#...#......#.
|
||||||
|
.#.......#..#.#...........#....
|
||||||
|
...##.#...#.......#..........#.
|
||||||
|
.....#..............#..#...#...
|
||||||
|
...........................#...
|
||||||
|
.............#.....#...........
|
||||||
|
....#.#..#..#...#..#...........
|
||||||
|
.....#.#.#..#.#....#.#.#.......
|
||||||
|
.......#..............#.....##.
|
||||||
|
........#..#..#.#..#...#.#.....
|
||||||
|
.....#.#...#.#.#.....#..#...#..
|
||||||
|
.....#....#.......#......#.#...
|
||||||
|
.#.#...........#........#......
|
||||||
|
.##..##......#......#......#.#.
|
||||||
|
.....#.###.#.......##.#..#.....
|
||||||
|
#.......##..#.........#....#...
|
||||||
|
.#.............#.........#.#.#.
|
||||||
|
..........#..#..#....#....#....
|
||||||
|
#....#...........##..#.....#..#
|
||||||
|
......#....#...###..#...#......
|
||||||
|
.....#....#........#....#..#...
|
||||||
|
...##..............#.##...#....
|
||||||
|
.#............#........##......
|
||||||
|
..##........#.#...........#...#
|
||||||
|
..#.#...##...#..#..........##..
|
||||||
|
.................#.......#.....
|
||||||
|
......#.....#............#.....
|
||||||
|
.#.....#.........#.#..#.#......
|
||||||
|
.............#.#.#..#.......#.#
|
||||||
|
#......#.....#..##...#.......#.
|
||||||
|
.......#.#..#...#.........#....
|
||||||
|
...#..##...#.........#.#....#..
|
||||||
|
........................#..#...
|
||||||
|
....##..##................#....
|
||||||
|
.......#..#.......#........##..
|
||||||
|
.....#....#.##....#............
|
||||||
|
.#....#............#.....#...#.
|
||||||
|
..##.....#......#......#.#....#
|
||||||
|
...#...........#...##....#.....
|
||||||
|
......#.##.#..##...##.#.#..##..
|
||||||
|
.......##....#......#....#.#...
|
||||||
|
.....####..#............#..##..
|
||||||
|
......##..##..##.........#...#.
|
||||||
|
.#.#...............#.........#.
|
||||||
|
......#......#...........#.....
|
||||||
|
.....#.......##.....#..#.......
|
||||||
|
.....##..#..#....#.#.......#...
|
||||||
|
...........###.###.##..#.#..#..
|
||||||
|
.#...............##.........#..
|
||||||
|
......##..........#..#.....##.#
|
||||||
|
.............#....#....#..##...
|
||||||
|
.#..............#........#.....
|
||||||
|
.#..#.........................#
|
||||||
|
.##..............#..........#..
|
||||||
|
..#..#.#.#.#......#............
|
||||||
|
....#...#.#.#....#........#..#.
|
||||||
|
.....#........#....#.....#.....
|
||||||
|
.#...#.#......#..#........#.##.
|
||||||
|
.......#.....#................#
|
||||||
|
.#.#........................#..
|
||||||
|
............#..#.......#.......
|
||||||
|
....##.#........#...#.#.#.#.#..
|
||||||
|
.....#.......##................
|
||||||
|
...##...#....#.....#.#.........
|
||||||
|
#...#..............#.......#...
|
||||||
|
...#.#.#.#..##....##...........
|
||||||
|
.....##...#....#.....#.........
|
||||||
|
#......#.....#....#............
|
||||||
|
....#..###....#.##.......#...#.
|
||||||
|
..................##.#......#..
|
||||||
|
.....##..............##.#....#.
|
||||||
|
.........#...#........#..#....#
|
||||||
|
.##..#.........#....#..##...#..
|
||||||
|
#.#.##................#.##.....
|
||||||
|
..#.#....#.#.......#....#......
|
||||||
|
..#.#.##.#.......#.............
|
||||||
|
..#....#.#..##.#..........#.#..
|
||||||
|
#.....#.....#.....#.........#..
|
||||||
|
#.......##.....#....##.....#...
|
||||||
|
..#...#.........##.#..##.......
|
||||||
|
..#.#.........#.......#........
|
||||||
|
#.....#.....##.#.#..#...#..#.##
|
||||||
|
.........................#.##..
|
||||||
|
..#.#..#..#..#........#......#.
|
||||||
|
..#..............#.............
|
||||||
|
.....#.......##.##.....#.......
|
||||||
|
....#...#...............#..#...
|
||||||
|
....#......#.#........##.#..#.#
|
||||||
|
....................#..#.......
|
||||||
|
.....#.......#......#.##.......
|
||||||
|
#.......##..........#.....#....
|
||||||
|
.#.......#....#.#......#.......
|
||||||
|
......#...#...............#.##.
|
||||||
|
....##.#.....#.............#.##
|
||||||
|
#..#................##...#.....
|
||||||
|
....###......#.#.........#..#..
|
||||||
|
...#...#......#...##....#...#.#
|
||||||
|
..#...#.#.##.#.................
|
||||||
|
.....##......#..#.#....#.......
|
||||||
|
##.......#......#.#..#.#.......
|
||||||
|
.#.#.#.........#...#.#..#......
|
||||||
|
#...#.#........#....#.#.....#..
|
||||||
|
....#.......##....#......##....
|
||||||
|
.....#..........#......#....#..
|
||||||
|
#...#....#...#.....#.#.........
|
||||||
|
...#..##.....##....#.....#.#...
|
||||||
|
..................#.....##.....
|
||||||
|
.....#............#............
|
||||||
|
...#.....#..#........#.#..##...
|
||||||
|
.......#.#.....................
|
||||||
|
......#...#.......#..#...#..#..
|
||||||
|
.#..#...#.....##.....#.#.#....#
|
||||||
|
....##...#.#............#..#..#
|
||||||
|
...........#............#..#...
|
||||||
|
.......#.....#................#
|
||||||
|
..#......#.#.......#.#.........
|
||||||
|
.....#..#.#.##.................
|
||||||
|
.....#..#......................
|
||||||
|
...#....#...#..#.#..#....#.....
|
||||||
|
.#............#.....#..........
|
||||||
|
#.##..#..#.......#......#.....#
|
||||||
|
.#.........#....#....#.........
|
||||||
|
...#.#.#........#.#....#...#...
|
||||||
|
#........#..#..#..........#..#.
|
||||||
|
.....#..#.....##......##..##.#.
|
||||||
|
..............#.......#..#..#..
|
||||||
|
....#........#.##.#...#........
|
||||||
|
..#.#..#....#........##.....##.
|
||||||
|
...##.....#...#.......#.#....#.
|
||||||
|
#.....#..##.##.#...##.......#..
|
||||||
|
.....#........#.#.#....#.......
|
||||||
|
.#................#####..#.#...
|
||||||
|
..........##..#..###....#......
|
||||||
|
.....#.......#..........#..#...
|
||||||
|
..#....#....................#..
|
||||||
|
#.....#..#.....#...##.#.....#.#
|
||||||
|
...#..##............#.....#....
|
||||||
|
##.#..#.......##...............
|
||||||
|
........##...#.#.....#......#..
|
||||||
|
........#...#..................
|
||||||
|
#......#................#.#....
|
||||||
|
...........#...#..#.........#..
|
||||||
|
...#.##..#.##..................
|
||||||
|
.....#......###......#..#......
|
||||||
|
..#.#.....#...#..#.##........#.
|
||||||
|
....#..........#.#.....#.......
|
||||||
|
..#..........#..........#.#....
|
||||||
|
..#.##.......#......#..........
|
30
2020/3/main.py
Normal file
30
2020/3/main.py
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
from pprint import pprint
|
||||||
|
|
||||||
|
with open("data.txt", "r", encoding="utf-8") as f:
|
||||||
|
data = [x.rstrip() for x in f]
|
||||||
|
|
||||||
|
def traverse(tx, ty):
|
||||||
|
x = y = 0
|
||||||
|
max_x = len(data[0])
|
||||||
|
max_y = len(data) - 1
|
||||||
|
trees = 0
|
||||||
|
|
||||||
|
while True:
|
||||||
|
x += tx
|
||||||
|
xi = x % max_x
|
||||||
|
y += ty
|
||||||
|
|
||||||
|
if y > max_y:
|
||||||
|
return trees
|
||||||
|
|
||||||
|
assert data[y][xi] in (".", "#")
|
||||||
|
if data[y][xi] == "#":
|
||||||
|
trees += 1
|
||||||
|
|
||||||
|
trees = 1
|
||||||
|
for x in ((1, 1), (3, 1), (5, 1), (7, 1), (1, 2)):
|
||||||
|
z = traverse(*x)
|
||||||
|
print(f"The toboggan encountered {z} trees.")
|
||||||
|
trees *= z
|
||||||
|
|
||||||
|
print(f"Sum: {trees}")
|
11
2020/3/test.txt
Normal file
11
2020/3/test.txt
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
..##.......
|
||||||
|
#...#...#..
|
||||||
|
.#....#..#.
|
||||||
|
..#.#...#.#
|
||||||
|
.#...##..#.
|
||||||
|
..#.##.....
|
||||||
|
.#.#.#....#
|
||||||
|
.#........#
|
||||||
|
#.##...#...
|
||||||
|
#...##....#
|
||||||
|
.#..#...#.#
|
Loading…
Reference in a new issue