Public
Edited
May 5, 2023
1 fork
1 star
Insert cell
Insert cell
Insert cell
function parse(input) {
return input.split("\n").map((l) =>
l
.trim()
.split(/\s+/)
.map((s) => Number(s))
);
}
Insert cell
Insert cell
function countTriangles(sides) {
let validTriangles = 0;
for (let triangle of sides) {
const [a, b, c] = triangle.sort((a, b) => a - b);
validTriangles += a + b > c ? 1 : 0;
}
return validTriangles;
}
Insert cell
function part1(input) {
return countTriangles(parse(input));
}
Insert cell
part1(puzzleInput)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
function transposed(input) {
const triangleM = parse(input);
let transposedM = triangleM[0].map((_, i) => triangleM.map((row) => row[i]));
return AOC.chunk(transposedM.flat(), 3);
}
Insert cell
function part2(input) {
return countTriangles(transposed(input));
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more