-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathday01.js
40 lines (31 loc) · 840 Bytes
/
day01.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
/* eslint-disable no-restricted-syntax */
const lineReader = require('line-reader');
const getDataFromFile = async (filepath) => {
return new Promise((resolve) => {
const lines = [];
lineReader.eachLine(filepath, (line, last) => {
lines.push(line);
if (last) {
resolve(lines);
}
});
});
};
const dayOne = (lines) => {
const neededNumbers = new Set();
for (const line of lines) {
const asNumber = parseInt(line, 10);
if (neededNumbers.has(asNumber)) {
const result = asNumber * (2020 - asNumber);
return result;
}
neededNumbers.add(2020 - asNumber);
}
return null;
};
const main = async () => {
const lines = await getDataFromFile('./inputs/day01.txt');
const result = dayOne(lines);
return result;
};
main().then((result) => console.log(result));