37 lines
968 B
TypeScript
37 lines
968 B
TypeScript
import fs from 'node:fs';
|
|
|
|
const listOne: number[] = [];
|
|
const listTwo: number[] = [];
|
|
const listDiff: number[] = [];
|
|
|
|
export default function runner(input: string) {
|
|
fs.readFile(`./${input}`, 'utf8', (err, data) => {
|
|
if (err) throw err;
|
|
data.split('\n').forEach(line => {
|
|
const spLine = line.split(' ');
|
|
if (!spLine[0] || !spLine[1]) throw new Error()
|
|
listOne.push(parseInt(spLine[0]))
|
|
listTwo.push(parseInt(spLine[1]))
|
|
})
|
|
|
|
listOne.sort((a, b) => a - b)
|
|
listTwo.sort((a, b) => a - b)
|
|
|
|
if (listOne.length != listTwo.length || !listOne || !listTwo) {
|
|
throw `Different length of list \n 01: ${listOne.length}, 02: ${listTwo.length}`
|
|
}
|
|
|
|
for (let i = 0; i < listTwo.length; i++) {
|
|
let diff = ((listOne[i] ?? 0) - (listTwo[i] ?? 0));
|
|
if (diff < 0) diff *= -1
|
|
listDiff.push(diff)
|
|
}
|
|
|
|
let sum = 0;
|
|
listDiff.forEach(value => {
|
|
sum += value
|
|
})
|
|
|
|
console.log(sum)
|
|
})
|
|
} |