-
Notifications
You must be signed in to change notification settings - Fork 0
/
day3-part2.js
46 lines (35 loc) · 1.37 KB
/
day3-part2.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
--- Part Two ---
Time to check the rest of the slopes - you need to minimize the probability of a sudden arboreal stop, after all.
Determine the number of trees you would encounter if, for each of the following slopes, you start at the top-left corner and traverse the map all the way to the bottom:
Right 1, down 1.
Right 3, down 1. (This is the slope you already checked.)
Right 5, down 1.
Right 7, down 1.
Right 1, down 2.
In the above example, these slopes would find 2, 7, 3, 4, and 2 tree(s) respectively; multiplied together, these produce the answer 336.
What do you get if you multiply together the number of trees encountered on each of the listed slopes?
*/
const map = require('fs').readFileSync('day3.input.txt')
.toString()
.split("\n")
.map(line => line.trim());
const slopes = [[1,1],[1,3],[1,5],[1,7],[2,1]]
const treeCounts = [];
slopes.forEach(([lineMove, columnMove]) => {
var line = lineMove;
var mapWidth = map[0].length;
var treeCount = 0;
var column = 0;
while (line < map.length) {
column = (column + columnMove) % mapWidth;
if (map[line].charAt(column) == '#') {
treeCount++;
}
line+=lineMove;
}
console.log(`Tree count: ${treeCount}`);
treeCounts.push(treeCount);
})
var result = treeCounts.reduce((result, count) => result * count);
console.log(`Product: ${result}`)