0
0
Fork 0

Get day one finished

This commit is contained in:
Oliver-Akins 2024-12-01 15:49:08 -07:00
parent 38aecdd021
commit ecab4f263a
2 changed files with 57 additions and 0 deletions

View file

@ -0,0 +1,31 @@
import { readFile } from "fs/promises";
import { SortedList } from "../../utils/javascript/SortedList.mjs";
const fileToRead = `actual.input`;
const list1 = new SortedList();
const list2 = new SortedList();
const file = await readFile(fileToRead, `utf-8`);
for (const line of file.split(`\n`)) {
// console.log(line);
const [ l1Add, l2Add ] = line.split(/\s+/, 2);
list1.add(l1Add);
list2.add(l2Add);
};
if (list1.size !== list2.size) {
console.log(`The two lists are different lengths`);
process.exit(1);
};
const size = list1.size;
let distance = 0;
for (var i = 0; i < size; i++) {
const place1 = list1.at(i);
const place2 = list2.at(i);
distance += Math.abs(place2 - place1);
}
console.log(`Total Distance: ${distance}`);

View file

@ -0,0 +1,26 @@
import { readFile } from "fs/promises";
const fileToRead = `actual.input`;
const list1 = {};
const list2 = {};
const file = await readFile(fileToRead, `utf-8`);
for (const line of file.split(`\n`)) {
const [ l1Add, l2Add ] = line.split(/\s+/, 2);
list1[l1Add] ??= 0;
list1[l1Add] += 1;
list2[l2Add] ??= 0;
list2[l2Add] += 1;
};
let similarity = 0;
for (const location in list1) {
similarity += list1[location] * (location * (list2[location] ?? 0))
};
console.log(`Similarity: ${similarity}`);