reformat and clean up
This commit is contained in:
parent
3234d984fd
commit
9ec32aaa9f
3 changed files with 51 additions and 39 deletions
9
aoc
Executable file
9
aoc
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
setopt extendedglob
|
||||||
|
|
||||||
|
cd "day$1"
|
||||||
|
|
||||||
|
# Handle deno days
|
||||||
|
if [[ -n *.ts(#qN) ]]; then
|
||||||
|
deno eval --ext=ts "await import('./part$2.ts').then(m => m.solve()).then(s => console.log('The solution is', s))"
|
||||||
|
fi
|
|
@ -1,16 +1,18 @@
|
||||||
const input = await Deno.readTextFile("./input.txt").then(
|
export async function solve() {
|
||||||
(f) =>
|
return await Deno.readTextFile("./input.txt").then(
|
||||||
f.split("\n").reduce<[number[], number[]]>(
|
(f) =>
|
||||||
(
|
f.split("\n").reduce<[number[], number[]]>(
|
||||||
acc,
|
(
|
||||||
cur,
|
acc,
|
||||||
) => [[...acc[0], +cur.split(" ")[0]], [
|
cur,
|
||||||
...acc[1],
|
) => [
|
||||||
+cur.split(" ")[1],
|
[...acc[0], +cur.split(" ")[0]],
|
||||||
]],
|
[...acc[1], +cur.split(" ")[1]],
|
||||||
[[], []],
|
],
|
||||||
),
|
[[], []],
|
||||||
).then(([first, second]) => [first.toSorted(), second.toSorted()]).then((
|
),
|
||||||
[first, second],
|
).then(([first, second]) => [first.toSorted(), second.toSorted()]).then(
|
||||||
) => first.reduce((acc, cur, i) => acc + Math.abs(cur - second[i]), 0));
|
([first, second]) =>
|
||||||
console.log("Answer = " + input);
|
first.reduce((acc, cur, i) => acc + Math.abs(cur - second[i]), 0),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -1,24 +1,25 @@
|
||||||
const input = await Deno.readTextFile("./input.txt").then(
|
export async function solve() {
|
||||||
(f) =>
|
return await Deno.readTextFile("./input.txt").then(
|
||||||
f.split("\n").reduce<[number[], number[]]>(
|
(f) =>
|
||||||
(
|
f.split("\n").reduce<[number[], number[]]>(
|
||||||
acc,
|
(
|
||||||
cur,
|
acc,
|
||||||
) => [[...acc[0], +cur.split(" ")[0]], [
|
cur,
|
||||||
...acc[1],
|
) => [
|
||||||
+cur.split(" ")[1],
|
[...acc[0], +cur.split(" ")[0]],
|
||||||
]],
|
[...acc[1], +cur.split(" ")[1]],
|
||||||
[[], []],
|
],
|
||||||
),
|
[[], []],
|
||||||
).then(([first, second]) => [
|
),
|
||||||
first,
|
).then(([first, second]) => [
|
||||||
second.reduce((acc, cur) => {
|
first,
|
||||||
if (acc[cur] !== undefined) acc[cur]++;
|
second.reduce((acc, cur) => {
|
||||||
else acc[cur] = 1;
|
if (acc[cur] !== undefined) acc[cur]++;
|
||||||
|
else acc[cur] = 1;
|
||||||
|
|
||||||
return acc;
|
return acc;
|
||||||
}, {} as Record<number, number>),
|
}, {} as Record<number, number>),
|
||||||
]).then(([first, map]) =>
|
] as const).then(([first, map]) =>
|
||||||
first.reduce((acc, cur) => acc + ((map[cur] ?? 0) * cur), 0)
|
first.reduce((acc, cur) => acc + ((map[cur] ?? 0) * cur), 0)
|
||||||
);
|
);
|
||||||
console.log("Answer = " + input);
|
}
|
||||||
|
|
Loading…
Reference in a new issue