This commit is contained in:
2024-12-02 23:37:11 +00:00
parent 415bcfcdce
commit 8ff8564f40
2 changed files with 56 additions and 8 deletions

View File

@@ -1,5 +1,4 @@
const fs = require('fs'); const fs = require('fs');
const _ = require('lodash');
const input = fs.readFileSync(__dirname + '/input.txt', 'utf8'); const input = fs.readFileSync(__dirname + '/input.txt', 'utf8');
@@ -16,17 +15,18 @@ input.split("\n").forEach((n: string) => {
}); });
// Part 1 // Part 1
// arr1.sort(); arr1.sort();
// arr2.sort(); arr2.sort();
// let sum = 0; let sum = 0;
// arr1.forEach((v, k) => { arr1.forEach((v, k) => {
// sum += Math.max(v, arr2[k]) - Math.min(v, arr2[k]); sum += Math.max(v, arr2[k]) - Math.min(v, arr2[k]);
// }); });
// console.log(sum); console.log(sum);
// Part 2
const map: { [key: number]: number } = {}; const map: { [key: number]: number } = {};
arr2.forEach((v) => { arr2.forEach((v) => {

48
2024/02/index.ts Normal file
View File

@@ -0,0 +1,48 @@
const fs = require('fs');
const input = fs.readFileSync(__dirname + '/input.txt', 'utf8');
let safe = 0;
function checkSequence(seq: Array<number>): boolean {
let pointer = 0;
let prev = seq[pointer];
pointer++;
let inc = seq[pointer] > prev;
while (pointer < seq.length) {
const next = seq[pointer];
pointer++;
if (inc ? next < prev : next > prev) {
return false;
}
const diff = Math.abs(next - prev);
if (diff <= 0 || diff > 3) {
return false;
}
prev = next;
}
return true;
}
input.split("\n")
.forEach((s: string) => {
if (s.match('^\s*$')) {
return;
}
const seq = s.split(' ').map((n) => parseInt(n));
const isSafe = checkSequence(seq);
if (!isSafe) {
// Part 2
for (let i = 0; i < seq.length; i++) {
if (checkSequence([...seq.slice(0, i), ...seq.slice(i + 1)])) {
safe++;
return;
}
}
// End part 2
return;
}
safe++;
});
console.log(safe);