2018 d4 p2 js
This commit is contained in:
parent
634b22067f
commit
3c9349a63c
46
2018/4/part2.js
Normal file
46
2018/4/part2.js
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
let input = fs.readFileSync('input.txt', 'utf-8').split('\n').sort((a, b) => val(a).getTime() - val(b).getTime());
|
||||||
|
|
||||||
|
function val(a) {
|
||||||
|
let time = new Date(a.match(/\[(.*)\]/)[1]);
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
|
let guards = {};
|
||||||
|
let id;
|
||||||
|
let start;
|
||||||
|
let shifts = []
|
||||||
|
for (let line of input) {
|
||||||
|
let match = line.match(/#(\d+)/);
|
||||||
|
if (match) {
|
||||||
|
id = match[1];
|
||||||
|
if (!guards[id])
|
||||||
|
guards[id] = {};
|
||||||
|
shifts.push(id);
|
||||||
|
} else {
|
||||||
|
if (line.includes('falls')) {
|
||||||
|
start = val(line).getMinutes();
|
||||||
|
} else if (line.includes('wakes')) {
|
||||||
|
let end = val(line).getMinutes();
|
||||||
|
for (time = start; time < end; time++) {
|
||||||
|
guards[id][time] = (guards[id][time] || 0) + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let theid;
|
||||||
|
let themost = 0;
|
||||||
|
let theminute;
|
||||||
|
for (id in guards) {
|
||||||
|
let thismost = Object.entries(guards[id]).sort((a, b) => b[1] - a[1])[0];
|
||||||
|
if (!thismost) { continue }
|
||||||
|
if (thismost[1] > themost) {
|
||||||
|
theid = id;
|
||||||
|
themost = thismost[1];
|
||||||
|
theminute = Number(thismost[0])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`#${theid} * minute ${theminute} = ${theid * theminute}, ${themost} times`)
|
|
@ -15,7 +15,7 @@ It's a fun challenge from [here](https://adventofcode.com).
|
||||||
* [1](https://adventofcode.com/2018/day/1) js * *
|
* [1](https://adventofcode.com/2018/day/1) js * *
|
||||||
* [2](https://adventofcode.com/2018/day/2) py * *
|
* [2](https://adventofcode.com/2018/day/2) py * *
|
||||||
* [3](https://adventofcode.com/2018/day/3) js * *
|
* [3](https://adventofcode.com/2018/day/3) js * *
|
||||||
* [4](https://adventofcode.com/2018/day/4) js *
|
* [4](https://adventofcode.com/2018/day/4) js * *
|
||||||
|
|
||||||
# Languages Used
|
# Languages Used
|
||||||
* Python
|
* Python
|
||||||
|
|
Loading…
Reference in a new issue