my solutions to advent of code
aoc
advent-of-code
1const input = (await Bun.file("../input.txt").text())
2 .trim()
3 .split("\n")
4 .map((str) => str.split("x").map((str) => Number(str) || 0)) as [
5 number,
6 number,
7 number,
8][];
9
10// part 1
11console.log(
12 input.reduce((prev, cur) => {
13 const sides = [cur[0] * cur[1], cur[1] * cur[2], cur[0] * cur[2]] as const;
14 return (
15 prev + (2 * sides[0] + 2 * sides[1] + 2 * sides[2] + Math.min(...sides))
16 );
17 }, 0),
18);
19
20// part 2
21console.log(
22 input.reduce((prev, cur) => {
23 const smallestPerimeter = Math.min(
24 2 * cur[0] + 2 * cur[1],
25 2 * cur[1] + 2 * cur[2],
26 2 * cur[2] + 2 * cur[0],
27 );
28 return prev + (smallestPerimeter + cur[0] * cur[1] * cur[2]);
29 }, 0),
30);