AOC2022/src/04_CampCleanup/CampCleanup.ts
Kevin Baensch b08f238f2e Day 04
2022-12-06 15:15:42 +01:00

31 lines
938 B
TypeScript

const input = Deno.readTextFileSync('./input.txt').trimEnd().split('\n');
function includes(left: [number, number], right: [number, number]): number {
if (
(left[0] <= right[0] && left[1] >= right[1]) ||
(left[0] >= right[0] && left[1] <= right[1])
) {
return 1;
}
return 0;
}
function overlap(left: [number, number], right: [number, number]): number {
if (left[0] > right[1] || left[1] < right[0]) return 0;
return 1;
}
let includeScore = 0;
let overlapScore = 0;
for (const line of input) {
const sections = line.match(/^(\d+)-(\d+),(\d+)-(\d+)$/)!.splice(1);
const [startLeft, endLeft, startRight, endRight] = sections.map((id) => {
return parseInt(id);
}) as [number, number, number, number];
includeScore += includes([startLeft, endLeft], [startRight, endRight]);
overlapScore += overlap([startLeft, endLeft], [startRight, endRight]);
}
console.log(includeScore);
console.log(overlapScore);