Public
Edited
Dec 8, 2022
Insert cell
Insert cell
Insert cell
testPairs = testData.split("\n").map((d) =>
d.split(",").map((d) => {
let ends = d.split("-");
return {
start: ends[0],
end: ends[1]
};
})
)
Insert cell
Insert cell
function isContainedWithin(a, b) {
// have to consider both directions
return (
(a.start >= b.start && a.end <= b.end) ||
(b.start >= a.start && b.end <= a.end)
);
}
Insert cell
testPairs.map((d) => isContainedWithin(d[0], d[1]))
Insert cell
Insert cell
rawData = FileAttachment("aocdata-4.txt").text()
Insert cell
pairs = rawData
.split("\n")
.slice(0, -1)
.map((d) =>
d.split(",").map((d) => {
let ends = d.split("-");
return {
start: ends[0],
end: ends[1]
};
})
)
Insert cell
pairs
.map((d) => isContainedWithin(d[0], d[1]))
.reduce((acc, cur) => acc + (cur == true ? 1 : 0))
Insert cell
data = pairs.map((d) => isContainedWithin(d[0], d[1]))
Insert cell
data
Type Table, then Shift-Enter. Ctrl-space for more options.

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