Skip to content

Instantly share code, notes, and snippets.

@kenos1
Created December 2, 2024 19:14
Show Gist options
  • Save kenos1/f5e05c0d79bb1a59af3a185a8c115634 to your computer and use it in GitHub Desktop.
Save kenos1/f5e05c0d79bb1a59af3a185a8c115634 to your computer and use it in GitHub Desktop.
unhinged solution to AOC 2024 Day 2 Part 2
input
.split("\n")
.map(line => line.split(" ").map(n => parseInt(n)))
.map(report => {
const buffer = [report]
for (let i = 0; i < report.length; i++) {
buffer.push(report.filter((_, j) => j !== i));
}
return buffer;
})
.map(reports => reports.map(r => r.map((e, i, arr) => i === 0 ? arr[1] - arr[0] : e - arr[i - 1])))
.map(reports => reports.map(r => r.map((e, i, arr) => {
if (i == 0) return true
const l = arr[i - 1]
if (e > 0 && l < 0) return false
if (e < 0 && l > 0) return false
if (Math.abs(e) < 1 || Math.abs(e) > 3) return false
return true
})))
.map(reports => reports.map(r => r.filter(e => e).length === r.length))
.filter(reports => reports.find(e => e)).length
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment