-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathday1_reindeer.js
70 lines (67 loc) · 1.59 KB
/
day1_reindeer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
let sessionId =
"";
let url = "https://adventofcode.com/2022/day/1/input";
function SolvePartOne(data) {
let calories = data.split("\n");
let elves = {};
let cur_elf = 0;
let max_elf = -1;
let max_calories = -1;
for (let calorie of calories) {
if (calorie != "") {
if (elves[cur_elf] == undefined) {
elves[cur_elf] = Number(calorie);
} else {
elves[cur_elf] += Number(calorie);
}
} else {
if (elves[cur_elf] > max_calories) {
max_elf = cur_elf;
max_calories = elves[cur_elf];
}
cur_elf++;
}
}
return max_calories;
}
function SolvePartOneUtility(data) {
let calories = data.split("\n");
let elves = {};
let cur_elf = 0;
let max_elf = -1;
let max_calories = -1;
for (let calorie of calories) {
if (calorie != "") {
if (elves[cur_elf] == undefined) {
elves[cur_elf] = Number(calorie);
} else {
elves[cur_elf] += Number(calorie);
}
} else {
if (elves[cur_elf] > max_calories) {
max_elf = cur_elf;
max_calories = elves[cur_elf];
}
cur_elf++;
}
}
return elves;
}
function SolvePartTwo(data) {
let elves = SolvePartOneUtility(data);
let sortedElves = Object.values(elves).sort();
console.log(sortedElves.slice(-20));
return sortedElves.slice(-5, -2).reduce((partialSum, a) => partialSum + a, 0);
}
fetch(url, {
headers: {
"Cookie": "session=" + sessionId,
},
})
.then((response) => {
return response.text();
})
.then((data) => {
console.log(SolvePartOne(data));
console.log(SolvePartTwo(data));
});