35 lines
807 B
JavaScript
35 lines
807 B
JavaScript
|
#!/bin/node
|
||
|
|
||
|
const fs = require('fs');
|
||
|
|
||
|
fs.readFile('input.txt', (err, data) => {
|
||
|
const lines = data.toString().split('\n').filter(l => l.length > 0);
|
||
|
width = lines[0].length;
|
||
|
|
||
|
const slopes = [
|
||
|
[1, 1],
|
||
|
[3, 1],
|
||
|
[5, 1],
|
||
|
[7, 1],
|
||
|
[1, 2],
|
||
|
];
|
||
|
const positions = slopes.map(_ => 0);
|
||
|
const results = slopes.map(_ => 0);
|
||
|
|
||
|
for (let i = 0; i < lines.length; i++) {
|
||
|
const line = lines[i];
|
||
|
|
||
|
for (let j = 0; j < slopes.length; j++) {
|
||
|
const [right, down] = slopes[j];
|
||
|
|
||
|
if (i % down === 0) {
|
||
|
if (line[positions[j]] === '#') results[j]++;
|
||
|
|
||
|
positions[j] = (positions[j] + right) % width;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
console.log(results, results.reduce((a, n) => a * n, 1));
|
||
|
});
|