36 lines
908 B
TypeScript
36 lines
908 B
TypeScript
const sample = await Deno.readTextFile("sample.txt");
|
|
const input = await Deno.readTextFile("input.txt");
|
|
|
|
const solvePart1 = (data: string): number | undefined =>
|
|
data
|
|
.split("\n\n")
|
|
.map((elf) =>
|
|
elf
|
|
.split("\n")
|
|
.filter(Boolean)
|
|
.map((value) => parseInt(value, 10))
|
|
.reduce((sum, value) => sum + value, 0)
|
|
)
|
|
.sort((a, b) => a - b)
|
|
.pop();
|
|
|
|
console.log("Sample:", solvePart1(sample));
|
|
console.log("Input", solvePart1(input));
|
|
|
|
const solvePart2 = (data: string): number =>
|
|
data
|
|
.split("\n\n")
|
|
.map((elf) =>
|
|
elf
|
|
.split("\n")
|
|
.filter(Boolean)
|
|
.map((value) => parseInt(value, 10))
|
|
.reduce((sum, value) => sum + value, 0)
|
|
)
|
|
.sort((a, b) => b - a)
|
|
.slice(0, 3)
|
|
.reduce((sum, value) => sum + value, 0);
|
|
|
|
console.log("Sample:", solvePart2(sample));
|
|
console.log("Input", solvePart2(input));
|