-
Notifications
You must be signed in to change notification settings - Fork 0
/
day4Part2.js
71 lines (49 loc) · 1.41 KB
/
day4Part2.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import { readFile } from 'node:fs';
readFile('AOCinputDay4.text', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
parseInput(data);
});
let range = 0;
function parseInput(data) {
let ranges = data.split('\n').filter(e => e).map(e => e.split(','));
ranges.forEach(element => {
let startFirstSection = Number(element[0].split('-')[0]);
let endFirstSection = Number(element[0].split('-')[1]);
let startSecondSection = Number(element[1].split('-')[0]);
let endSecondSection = Number(element[1].split('-')[1]);
if ((startFirstSection <= startSecondSection && endFirstSection >= endSecondSection) ||
(startFirstSection >= startSecondSection && endFirstSection <= endSecondSection) ||
(startFirstSection <= endSecondSection && startSecondSection <= endFirstSection)
// 2 3 8 7
) { range++ };
});
console.log(range);
};
// Answer is 794
// Example to test
// function run() {
// let example =
// `2-4,6-8
// 2-3,4-5
// 5-7,7-9
// 2-8,3-7
// 6-6,4-6
// 2-6,4-8`
// parseInput(example);
// };
// run();
// .234..... 2-4
// .....678. 6-8
// .23...... 2-3
// ...45.... 4-5
// ....567.. 5-7
// ......789 7-9
// .2345678. 2-8
// ..34567.. 3-7
// .....6... 6-6
// ...456... 4-6
// .23456... 2-6
// ...45678. 4-8