23 lines
561 B
TypeScript
23 lines
561 B
TypeScript
|
import fs from "node:fs";
|
||
|
|
||
|
const input = fs.readFileSync("inputs/day2").toString();
|
||
|
|
||
|
const rows = input.split("\n").filter(Boolean);
|
||
|
|
||
|
function safe_levels(_row: number[]) {
|
||
|
const row = [..._row];
|
||
|
while (row.length > 1) {
|
||
|
const diff = row[1] - row[0];
|
||
|
if (diff > 3 || diff < 1) return false;
|
||
|
row.shift();
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
function puzzle1() {
|
||
|
return rows.map((row) => row.split(/\s+/g).map(i => +i))
|
||
|
.filter(row => safe_levels(row) || safe_levels(row.toReversed())).length;
|
||
|
}
|
||
|
|
||
|
console.log("Puzzle 1", puzzle1());
|