26 lines
560 B
TypeScript
26 lines
560 B
TypeScript
|
import fs from "node:fs";
|
||
|
|
||
|
const input = fs.readFileSync("inputs/day1").toString();
|
||
|
|
||
|
const sort = (a: number, b: number) => a - b;
|
||
|
|
||
|
const lists: number[][] = [];
|
||
|
|
||
|
input.split("\n").forEach(line => {
|
||
|
line.split(/\s+/g).forEach((i, list) => {
|
||
|
lists[list] = lists[list] || [];
|
||
|
lists[list].push(Number(i));
|
||
|
})
|
||
|
})
|
||
|
|
||
|
lists.forEach(i => i.sort(sort));
|
||
|
|
||
|
const rows: number[] = [];
|
||
|
|
||
|
lists[0].forEach((a) => {
|
||
|
rows.push(a * lists[1].filter(b => a === b).length);
|
||
|
})
|
||
|
|
||
|
const result = rows.reduce((prev, cur) => prev + cur);
|
||
|
|
||
|
console.log(result);
|