Public
Edited
Dec 4, 2022
1 fork
1 star
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
testAssignments = parseAssignments(test)
Insert cell
function parseAssignments(input) {
return input
.split("\n")
.map(text => text.split(",").map(parseSectionRange));
}
Insert cell
function parseSectionRange(input) {
return input.split("-").map(Number);
}
Insert cell
testAssignments.filter(([a, b]) => sectionsContains(a, b))
Insert cell
function sectionsContains(a, b) {
return sectionContains(a, b) || sectionContains(b, a);
}
Insert cell
function sectionContains([alo, ahi], [blo, bhi]) { // does a contain b?
return alo <= blo && bhi <= ahi;
}
Insert cell
input = FileAttachment("input.txt").text()
Insert cell
assignments = parseAssignments(input.trim())
Insert cell
assignments.filter(([a, b]) => sectionsContains(a, b))
Insert cell
Insert cell
function sectionsOverlap([alo, ahi], [blo, bhi]) { // do a and b overlap?
return alo <= bhi && ahi >= blo;
}
Insert cell
assignments.filter(([a, b]) => sectionsOverlap(a, b))
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