Files
advent-of-code/2020/03/part2.js

58 lines
1.0 KiB
JavaScript
Raw Normal View History

2020-12-03 18:30:42 +00:00
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));
});