Files
advent-of-code-2022/2022/04/solution.ts
2022-12-05 21:30:13 +01:00

43 lines
1.1 KiB
TypeScript

const sample = await Deno.readTextFile("sample.txt");
const input = await Deno.readTextFile("input.txt");
const solvePart1 = (data: string): number =>
data
.split("\n")
.filter(Boolean)
.map((line) =>
line
.split(",")
.map((section) =>
section.split("-").map((value) => parseInt(value, 10))
)
)
.filter(
([section1, section2]) =>
(section1[0] <= section2[0] && section1[1] >= section2[1]) ||
(section2[0] <= section1[0] && section2[1] >= section1[1])
).length;
console.log("Sample:", solvePart1(sample));
console.log("Input", solvePart1(input));
const solvePart2 = (data: string): number =>
data
.split("\n")
.filter(Boolean)
.map((line) =>
line
.split(",")
.map((section) =>
section.split("-").map((value) => parseInt(value, 10))
)
)
.filter(
([section1, section2]) =>
(section1[0] <= section2[1] && section1[1] >= section2[0]) ||
(section2[0] <= section1[1] && section2[1] >= section1[0])
).length;
console.log("Sample:", solvePart2(sample));
console.log("Input", solvePart2(input));