-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathday1_part2.js
More file actions
48 lines (41 loc) · 1.88 KB
/
day1_part2.js
File metadata and controls
48 lines (41 loc) · 1.88 KB
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
// var input = require('./day1_input');
process.stdin.on('data', function (data) {
var input = data.toString().split('\r\n');
console.time('day1');
ready(input);
})
async function ready(input) {
var extracted_numbers = 0
// var extracted_numbers = []
function convToNum(num) {
return num.replace('one', '1')
.replace('two', '2')
.replace('three', '3')
.replace('four', '4')
.replace('five', '5')
.replace('six', '6')
.replace('seven', '7')
.replace('eight', '8')
.replace('nine', '9');
}
var anums = "one|two|three|four|five|six|seven|eight|nine"
var regex = new RegExp("(\\d|" + anums + ")", "g");
var reversed_regex = new RegExp("(" + anums.split('').reverse().join('') + "|\\d)", "g");
for (var i = 0; i < input.length; i++) {
// var regex = /(\d)/g;
var matches = input[i].match(regex);
var input_reversed = input[i].split('').reverse().join('');
var reversed_matches = input_reversed.match(reversed_regex);
extracted_numbers += parseInt(convToNum(matches[0]) + "" + convToNum(reversed_matches[0].split('').reverse().join('')));
// extracted_numbers.push(convToNum(matches[0]) + "" + convToNum(reversed_matches[0].split('').reverse().join('')));
}
// console.log(input[0], extracted_numbers[0]);
// console.log(input[1], extracted_numbers[1]);
// console.log(input[2], extracted_numbers[2]);
// console.log(input[34], extracted_numbers[34]);
// console.log(input[35], extracted_numbers[35]);
// console.log(input[36], extracted_numbers[36]);
console.log(extracted_numbers);
// console.log(extracted_numbers.reduce((a, b) => parseInt(a) + parseInt(b), 0));
console.timeEnd('day1');
}