Public
Edited
Dec 1, 2022
1 fork
1 star
Insert cell
Insert cell
Insert cell
maxElf(testdata.split('\n'))
Insert cell
maxElf((await FileAttachment("aoc-input-01.txt").text()).split('\n'))
Insert cell
function maxElf(lines) {
let maxElfNum = 0;
let maxElfCalories = 0;

let currentElfNum = 0;
let currentElfCalories = 0;
for (let line of lines) {
if (line.length > 0) {
currentElfCalories += +line;
if (currentElfCalories > maxElfCalories) {
maxElfNum = currentElfNum;
maxElfCalories = currentElfCalories;
}
} else {
currentElfNum += 1;
currentElfCalories = 0;
}
}
return [maxElfNum, maxElfCalories];
}
Insert cell
Insert cell
top3Elfs((await FileAttachment("aoc-input-01.txt").text()).split('\n'))
Insert cell
top3Elfs(testdata.split('\n'))
Insert cell
function top3Elfs(lines) {

let elfs = [];
let elfNum = 0;
let elfCalories = 0;
for (let line of lines) {
if (line.length > 0) {
elfCalories += +line;
} else {
elfs[elfNum] = elfCalories;
elfNum += 1;
elfCalories = 0;
}
}

elfs[elfNum] = elfCalories;

return d3.sum(d3.sort(elfs, d3.descending).slice(0, 3));
}
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