Day 3
This commit is contained in:
323
03/input
Normal file
323
03/input
Normal file
@@ -0,0 +1,323 @@
|
|||||||
|
..#.#...#.#.#.##.....###.#....#
|
||||||
|
...........##.#...#.#..........
|
||||||
|
....#.....#..#.............#...
|
||||||
|
.#....###..##...#...##...#.#..#
|
||||||
|
#.......#.........#..#.......#.
|
||||||
|
...#.##..##...#.#......#.##.#..
|
||||||
|
#.#..##.....#.....#..##........
|
||||||
|
...#.####...#.##...#...........
|
||||||
|
.#...#..#..#....#.#.#.#.##.....
|
||||||
|
##.#..#.##..#......#..##.#.#..#
|
||||||
|
.#.##.....#.#...............#.#
|
||||||
|
..##.#.....#.....##..##.#....#.
|
||||||
|
#..#..........#...##........#..
|
||||||
|
#..##.#.#...............#..#...
|
||||||
|
..#....#...#.......#.......#...
|
||||||
|
.........#.#.##.#........#.....
|
||||||
|
#...##....#..#.........#.#...##
|
||||||
|
...#.#...#...........#..#...#..
|
||||||
|
...#..#........#...#...........
|
||||||
|
.#....##.#...#.#....#....##....
|
||||||
|
...#...#......#.#.......#...##.
|
||||||
|
####..........##....#..........
|
||||||
|
#..#...........................
|
||||||
|
#....#...####..##.#......#.#...
|
||||||
|
..#..#.....##.....#...#....#..#
|
||||||
|
#.##......#..##........#.......
|
||||||
|
..........#.....#...#.#.#....##
|
||||||
|
....##...##..#........#...#..#.
|
||||||
|
#..#..#...##..............##...
|
||||||
|
###.##..##.###...#....##.#..#..
|
||||||
|
.#......#.................#.#..
|
||||||
|
#.#..#.##.#.#.#.....#.........#
|
||||||
|
..##......#.......##........#..
|
||||||
|
#..............#.##.#.....#....
|
||||||
|
............................##.
|
||||||
|
..#.##......#..........#....#..
|
||||||
|
..##.....#..##.#....#.......##.
|
||||||
|
..#.#.##.#.........#...........
|
||||||
|
...........##.#.#...#......###.
|
||||||
|
#....#...#........#.#...#.#.###
|
||||||
|
..............#...#.....##....#
|
||||||
|
#...#...#..............#..#...#
|
||||||
|
.##..#.........#.##.#..#...##..
|
||||||
|
.....#.........#..#..#.......#.
|
||||||
|
.#......#.#.#....##..#...#..##.
|
||||||
|
#....................#.#....#..
|
||||||
|
......#.....##............#....
|
||||||
|
.#.....#......####.....#....##.
|
||||||
|
##.####.#..#..........#......#.
|
||||||
|
##....................#..##....
|
||||||
|
.....#...#.#.##.#.###.....#....
|
||||||
|
.#..#...####.#.#...#.#.....#...
|
||||||
|
#.....##.........##.##.##.....#
|
||||||
|
....#....##.###.........#...###
|
||||||
|
.......#........#.##.....#####.
|
||||||
|
...#.##..#...#...####.....##...
|
||||||
|
..#....#....#......#......#.#..
|
||||||
|
...#.#.#.........#.......#..#..
|
||||||
|
.....#...........#.#........##.
|
||||||
|
..##...#.#.##.#.#.#...###.#....
|
||||||
|
..##.............###....#.#....
|
||||||
|
#.......#....#..#...#..##..#...
|
||||||
|
....##..#.......####....#..#.##
|
||||||
|
##....#...#.#.#...#...#........
|
||||||
|
....#.#................#...#...
|
||||||
|
...#.....#.#.......##....#.#..#
|
||||||
|
#....##.#...#.#..#.#.........#.
|
||||||
|
#..##.........##.....#...#.....
|
||||||
|
....#.....#.#..#..##..##.##...#
|
||||||
|
#.....#...#.#.#.##....#.#.##...
|
||||||
|
.#.#........#..##.......#...#.#
|
||||||
|
..###.....#..#.##....#...#....#
|
||||||
|
...#..###...#...#.......#..#...
|
||||||
|
.#....##.......#.#..........##.
|
||||||
|
...#.#.............##.....##...
|
||||||
|
..#..#...#.....#...#...........
|
||||||
|
.#.#......#.##....#.....#......
|
||||||
|
........#.#.....#.#...#..#.#..#
|
||||||
|
#.....#.#.....#.##..#.#....#.#.
|
||||||
|
..#..###.#.#........#.....##..#
|
||||||
|
#.#....#......#.#....###..#...#
|
||||||
|
...#.#....#..#.##.....#...#....
|
||||||
|
....##....#.#...#.........#..##
|
||||||
|
.#......#...#.............#..#.
|
||||||
|
#........#........#.#.....##...
|
||||||
|
..##..#.##..#........#.........
|
||||||
|
.....#...#...#..#.....#.#.##.#.
|
||||||
|
..#..#..#.........#...#.......#
|
||||||
|
....#.....#.......#.##.#.##..##
|
||||||
|
......#.......##...#......#....
|
||||||
|
....#....##.......###.#......#.
|
||||||
|
.....#..#.#........#....#.....#
|
||||||
|
#...#...#....#...###........#..
|
||||||
|
#...........####.......#.#..#.#
|
||||||
|
..###....#..........#...#.###..
|
||||||
|
....#.#.....#....#..#.....#.##.
|
||||||
|
...##.#..#..#.......#......#.#.
|
||||||
|
....#......###..#.....#.....#..
|
||||||
|
.....#.#.#.....#.##.#....####..
|
||||||
|
.##....#.....#.#....##..#......
|
||||||
|
#..#.....#..#...#....#.#.......
|
||||||
|
.##.#..####..#.##.#......#.....
|
||||||
|
......#....#.......##.##....#..
|
||||||
|
...#....#....#..##.......##.###
|
||||||
|
..##..........##.............#.
|
||||||
|
.#...#.#...##..##.....#..#.....
|
||||||
|
....#.#.##...................#.
|
||||||
|
.......#.#..#....#.....#.......
|
||||||
|
.#.#..#....####...#.#.##....#..
|
||||||
|
.#.##...#..#..#...#.#.......#..
|
||||||
|
##.#.....##.........#.......#..
|
||||||
|
.##...#.....#.........##.#....#
|
||||||
|
.............#..#............##
|
||||||
|
...##.......#.....#.......#.##.
|
||||||
|
##..##.........................
|
||||||
|
.##.#........#........#........
|
||||||
|
.....#................#.#......
|
||||||
|
.............#....#....##....#.
|
||||||
|
#..##...##...#..#.#............
|
||||||
|
.......#...####.#..#..#.....##.
|
||||||
|
..#.#..#......#.....#.#.#.....#
|
||||||
|
...#..##........#..#.#....#.#..
|
||||||
|
.#.....#..###..#....#.##.#...#.
|
||||||
|
#.#..#.##.#..#......#.###...#..
|
||||||
|
##..#.#..###....##.#...#...##.#
|
||||||
|
##..#.........#...##......#....
|
||||||
|
#.#...#.#..#..........#.......#
|
||||||
|
.......#.#.......#.....##..#...
|
||||||
|
........#..##............##.#..
|
||||||
|
........##.....#........#..#...
|
||||||
|
#..##.#..###......##...........
|
||||||
|
..#.....#.#.#....#...#.#..#..##
|
||||||
|
#...............#.......#.#.##.
|
||||||
|
#..#.....#....#............#.#.
|
||||||
|
...#....#...#....#..#..###.....
|
||||||
|
..#....#.#.....#..#......##.#.#
|
||||||
|
.#.#....#..#...#....#........#.
|
||||||
|
..##....##....#.....#.#........
|
||||||
|
.#...#....##..##.....##.....##.
|
||||||
|
.#...........#....##...##.#....
|
||||||
|
...#.....#......###.##.#.......
|
||||||
|
......#.#..##.#.#....#...#...##
|
||||||
|
....#...###.##....#.#.....#....
|
||||||
|
.......#.....#......#.....##..#
|
||||||
|
.####.#...##..#....#...........
|
||||||
|
................###...#....#..#
|
||||||
|
...#...#.....###.#.##.......#..
|
||||||
|
..#....#...##...#.###......#.#.
|
||||||
|
#...#......#............#.....#
|
||||||
|
#.........#...............#..#.
|
||||||
|
...#.##.....#............#.....
|
||||||
|
........#......##..#..#..#.#..#
|
||||||
|
....#....#.....#.#.....##..#...
|
||||||
|
.....#....#..##.....#..........
|
||||||
|
.##....#..#...........##.......
|
||||||
|
#......##.....#...#.....#......
|
||||||
|
...#.....#......#.#....#.......
|
||||||
|
...#................##...#..#..
|
||||||
|
........#..........#....#......
|
||||||
|
......#....#.#.#...........#.#.
|
||||||
|
.#............#....##.......##.
|
||||||
|
#.......#.....#...##.#..##.....
|
||||||
|
.#.....#.##..#..#....#.#..#.#.#
|
||||||
|
....#...............###........
|
||||||
|
#####...........#..#.......#..#
|
||||||
|
...#.......#...#.#............#
|
||||||
|
#...#..#.#...#.#...#.##.....##.
|
||||||
|
.#..#..#..#.....#....#...#.....
|
||||||
|
.#...#......#.......#.........#
|
||||||
|
.#....#.....#...#...#..#....#..
|
||||||
|
#....#....#.......#.....##.....
|
||||||
|
.#...#.#.##.#....#..##........#
|
||||||
|
..##...#............#..........
|
||||||
|
..........#..#..#...#....#.....
|
||||||
|
..#.......#....#.....##..##....
|
||||||
|
.#...#......#...#..###...#...#.
|
||||||
|
..##...#......#...#.#.#...#....
|
||||||
|
.....#..#.#.#.#.#...#....##..#.
|
||||||
|
##..#..##....#.#........##.#...
|
||||||
|
.##..#.#...##..#....#..#.......
|
||||||
|
.....#...#...#..#.#..#......#..
|
||||||
|
.#.....##.##..#....####..#....#
|
||||||
|
......##.................#....#
|
||||||
|
....##.......###...#.##...##.#.
|
||||||
|
...#...#.................##.#..
|
||||||
|
.#.....##...#...#.....#.....##.
|
||||||
|
##.........####..#...#...#....#
|
||||||
|
...##.....#......#.###..#......
|
||||||
|
.....###..##.#.......###..##...
|
||||||
|
#....#...#.#...#...#.#....#..#.
|
||||||
|
#...#.........##.#.........###.
|
||||||
|
#....#..###..........##........
|
||||||
|
.###.....#.#.....#........##..#
|
||||||
|
....#.........##..#..#.#.#..#..
|
||||||
|
..#......#...........#..##...#.
|
||||||
|
...#.#..#..#...#.##..#..#.....#
|
||||||
|
.#...#...#....................#
|
||||||
|
..#..##..#.............#.....#.
|
||||||
|
.....###.#.#.#...##..#.##....#.
|
||||||
|
..#...####..##.#....#...#...#..
|
||||||
|
.....#..#........#.#.#..#.##...
|
||||||
|
#.#.........####..#...#.#......
|
||||||
|
..............#..#........#....
|
||||||
|
....#........#......#.........#
|
||||||
|
#..#.##......#.#.......#....#..
|
||||||
|
....#..............#.#.#..#....
|
||||||
|
#.#......#.....##.......#..##..
|
||||||
|
.#.#..........#....#......#....
|
||||||
|
.....#.......#.##.....#......##
|
||||||
|
...#...#.##.............####...
|
||||||
|
..#....##...#...##..#.#..##.#..
|
||||||
|
..#.........##.......###.#.....
|
||||||
|
..#.........#####..##...#......
|
||||||
|
..#.#...#.......#.####......##.
|
||||||
|
......#.#.#....#......####....#
|
||||||
|
.###...........#...#..#..#..##.
|
||||||
|
..#...#..##.##...#.#.##.....#..
|
||||||
|
.....#..#....##.......#...#....
|
||||||
|
......#.....#.........#..#..#..
|
||||||
|
...#..#.........##.....##.#...#
|
||||||
|
....##...#......#..#.....#.....
|
||||||
|
....#..#....#....#........##...
|
||||||
|
##.....#.......#.....#.#.#..#..
|
||||||
|
.....#..##.....##.##.#.........
|
||||||
|
.#.#..##.............#.#.......
|
||||||
|
......#.##.#.....#.#......#..#.
|
||||||
|
..........#.#..#....#.#.#.#..##
|
||||||
|
...##.....#..#...#...#...##....
|
||||||
|
........#.#......#..###..#.....
|
||||||
|
..#.##......#.......#.......#..
|
||||||
|
...#....##.##.........#.#......
|
||||||
|
......#....#.#.........#......#
|
||||||
|
.....#...#....#...#......#..#..
|
||||||
|
.##...#......#.........#...#.#.
|
||||||
|
..#.#.#......#....#............
|
||||||
|
..#.....##.............#.##.##.
|
||||||
|
#......#......#...##.......#.#.
|
||||||
|
##........#.....#..............
|
||||||
|
.#.###.................#.#....#
|
||||||
|
........##.#..##........#.#....
|
||||||
|
.......###...#...##.#..#....#..
|
||||||
|
.#..#....#..#......##......#...
|
||||||
|
.#...#....#..........##..##.#..
|
||||||
|
.#..###.......#............#...
|
||||||
|
...#.....###.#..#........#.#.#.
|
||||||
|
...#....#..#.##..........#.#.#.
|
||||||
|
.#..##..#.....#...........#....
|
||||||
|
#...#...##....#..#....##.......
|
||||||
|
#..#......#................#...
|
||||||
|
#..##....#.#..#......#.#.#.....
|
||||||
|
##.#..#...#.....#.#...#......##
|
||||||
|
#....#.#.#....#.....##.....##..
|
||||||
|
....#...##.#...####.#.#.#.#..#.
|
||||||
|
.....#.#....#..#.....#..#......
|
||||||
|
.........#.#...................
|
||||||
|
........#.....####......#..#..#
|
||||||
|
.#.#.##.#...#.#......#...##.##.
|
||||||
|
.#......#.#.#...#..#.......#...
|
||||||
|
..#......#.##.##.#.#....#......
|
||||||
|
..........#.#...###............
|
||||||
|
.##..#..#.#.#..#.....#..#.#....
|
||||||
|
......#.......#.#..#.#....#...#
|
||||||
|
.#.......###......#...#.#.#....
|
||||||
|
.............##..#..#...#....#.
|
||||||
|
....#......#.#...#.#...#...#...
|
||||||
|
..#....#.......#.#..#..#.#..#.#
|
||||||
|
.#..#.#...#.....#.#...#####...#
|
||||||
|
.##............#....#..........
|
||||||
|
#.......####...#.#.#...........
|
||||||
|
...#.......##.#..........#....#
|
||||||
|
..#.#......#.......##.....#..##
|
||||||
|
#......#.###..#......#......#.#
|
||||||
|
##....#..#....#.##....#..#.....
|
||||||
|
...##...#.#....#.#.......#.....
|
||||||
|
#...####....#..#.#..#.##....###
|
||||||
|
.....#..#..........###..#......
|
||||||
|
.#..#..#...#....#.##..#..#.....
|
||||||
|
#..#.....#....#..#.##...##.....
|
||||||
|
.....###.#..#.......#...###.##.
|
||||||
|
#..#........#.#..#.#.........#.
|
||||||
|
....##........................#
|
||||||
|
.#....#.#.#.#.#...#......#....#
|
||||||
|
#....#...#.##.......#.#.###....
|
||||||
|
..........###..##....#..##.#...
|
||||||
|
...##..###...#.#.#.......##...#
|
||||||
|
##.#...#..#.....###....#.......
|
||||||
|
..#..##....###........##....###
|
||||||
|
.....##..#...#..#.....#..#....#
|
||||||
|
#................#....#...#..##
|
||||||
|
#....#.#....#..###.#.#...#..#.#
|
||||||
|
........##.#...#.#.#.#...#.....
|
||||||
|
..#..###....#......##.#...##...
|
||||||
|
..#..##....#.##..#.....#.....#.
|
||||||
|
.#.#...#.....#..#..#......##.#.
|
||||||
|
........#.#...#..##....#..#....
|
||||||
|
...##...#...#...#...##...##..#.
|
||||||
|
.......#..#..#....#.#..#...##..
|
||||||
|
.#.....#.##........#...#.#.....
|
||||||
|
##.#..#....#.#....#.#....#...#.
|
||||||
|
..#.#......#.......##...#....#.
|
||||||
|
#.#..####..#........#.......###
|
||||||
|
....#.......#.......##.#...#.#.
|
||||||
|
..#..#.#.............#..#......
|
||||||
|
........###.....##....#.......#
|
||||||
|
...#.....#...#...#....#.###....
|
||||||
|
#...##.#........#..#...##..#..#
|
||||||
|
...##..#....#....#.#.#...#.#...
|
||||||
|
#......#.....#....###......##..
|
||||||
|
.....#.........####...##..#....
|
||||||
|
.......#...##...#..#..#.#......
|
||||||
|
.#.#....#.....#.......#........
|
||||||
|
...##...#....##..#.....###.....
|
||||||
|
.#....#........##......#....#.#
|
||||||
|
.........#.#.#.#...........#.#.
|
||||||
|
....#.#..##......#.#.#..##.....
|
||||||
|
.........#.....##....#.........
|
||||||
|
....#.............#...........#
|
||||||
|
...#..##........#.....###......
|
||||||
|
#....#....#......#..#..#..#.#..
|
||||||
|
#......##.....#..#....#..#.#...
|
||||||
|
#..............#....#.#....###.
|
||||||
|
..##..#..#...#...##........##..
|
||||||
|
..#.##....#..#......###..#.....
|
52
03/part1.js
Normal file
52
03/part1.js
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
const fs = require('fs')
|
||||||
|
const readline = require('readline');
|
||||||
|
|
||||||
|
const readInterface = readline.createInterface({
|
||||||
|
input: fs.createReadStream('input'),
|
||||||
|
console: false
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// array of arrays of bool. Coordinates are [y][x]. True = tree.
|
||||||
|
let map = [];
|
||||||
|
|
||||||
|
readInterface.on('line', function(line) {
|
||||||
|
let row = [];
|
||||||
|
|
||||||
|
line.split('').forEach(function(char) {
|
||||||
|
if (char == '.') {
|
||||||
|
row.push(false);
|
||||||
|
} else if (char == '#') {
|
||||||
|
row.push(true);
|
||||||
|
}; // ignore any other character
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(line);
|
||||||
|
console.log(row);
|
||||||
|
|
||||||
|
map.push(row);
|
||||||
|
});
|
||||||
|
|
||||||
|
readInterface.on('close', function(line) {
|
||||||
|
let treesHit = 0;
|
||||||
|
let x = 0;
|
||||||
|
let y = 0;
|
||||||
|
|
||||||
|
while (y + 1 < map.length) {
|
||||||
|
x += 3;
|
||||||
|
y += 1;
|
||||||
|
|
||||||
|
if (x + 1 > map[y].length) {
|
||||||
|
x -= map[y].length;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (map[y][x]) {
|
||||||
|
treesHit++;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(x, y, map[y][x]);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(treesHit);
|
||||||
|
});
|
||||||
|
|
57
03/part2.js
Normal file
57
03/part2.js
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
const fs = require('fs')
|
||||||
|
const readline = require('readline');
|
||||||
|
|
||||||
|
const readInterface = readline.createInterface({
|
||||||
|
input: fs.createReadStream('input'),
|
||||||
|
console: false
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// array of arrays of bool. Coordinates are [y][x]. True = tree.
|
||||||
|
let map = [];
|
||||||
|
|
||||||
|
readInterface.on('line', function(line) {
|
||||||
|
let row = [];
|
||||||
|
|
||||||
|
line.split('').forEach(function(char) {
|
||||||
|
if (char == '.') {
|
||||||
|
row.push(false);
|
||||||
|
} else if (char == '#') {
|
||||||
|
row.push(true);
|
||||||
|
}; // ignore any other character
|
||||||
|
});
|
||||||
|
|
||||||
|
map.push(row);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
readInterface.on('close', function(line) {
|
||||||
|
let totals = [];
|
||||||
|
|
||||||
|
[[1,1], [3,1], [5,1], [7,1], [1,2]].forEach(function(step) {
|
||||||
|
|
||||||
|
let treesHit = 0;
|
||||||
|
let x = 0;
|
||||||
|
let y = 0;
|
||||||
|
|
||||||
|
while (y + 1 < map.length) {
|
||||||
|
x += step[0];
|
||||||
|
y += step[1];
|
||||||
|
|
||||||
|
if (x + 1 > map[y].length) {
|
||||||
|
x -= map[y].length;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (map[y][x]) {
|
||||||
|
treesHit++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// console.log(x, y, map[y][x]);
|
||||||
|
}
|
||||||
|
|
||||||
|
totals.push(treesHit);
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(totals.reduce((a,b) => a * b));
|
||||||
|
});
|
||||||
|
|
Reference in New Issue
Block a user