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