Initial commit
This commit is contained in:
commit
ef4a9f7182
28
1/solution.mjs
Normal file
28
1/solution.mjs
Normal file
@ -0,0 +1,28 @@
|
||||
import { readFileSync } from 'node:fs';
|
||||
|
||||
const input = readFileSync('input', 'utf-8');
|
||||
|
||||
const elfCalories = input
|
||||
.split(/\n{2,}/)
|
||||
.filter(calories => calories)
|
||||
.map(calories =>
|
||||
calories
|
||||
.split('\n')
|
||||
.map(count => parseInt(count))
|
||||
);
|
||||
|
||||
const totalElfCalories = elfCalories
|
||||
.map(calories =>
|
||||
calories.reduce((total, count) => total + count, 0)
|
||||
);
|
||||
|
||||
totalElfCalories.sort((a, b) => a - b);
|
||||
|
||||
const mostCalories = totalElfCalories[totalElfCalories.length - 1];
|
||||
console.log(`Elf with most calories has: ${mostCalories}`);
|
||||
|
||||
const topThreeCalories = totalElfCalories
|
||||
.slice(-3)
|
||||
.reduce((total, count) => total + count, 0);
|
||||
console.log(`Top three calory count: ${topThreeCalories}`);
|
||||
|
34
2/solution.mjs
Normal file
34
2/solution.mjs
Normal file
@ -0,0 +1,34 @@
|
||||
import { readFileSync } from 'node:fs';
|
||||
|
||||
const input = readFileSync('input', 'utf-8');
|
||||
|
||||
const data = input
|
||||
.split('\n')
|
||||
.filter(line => line)
|
||||
.map(line => {
|
||||
const play = line.split(' ');
|
||||
return [
|
||||
['A', 'B', 'C'].indexOf(play[0]),
|
||||
['X', 'Y', 'Z'].indexOf(play[1])
|
||||
]
|
||||
});
|
||||
|
||||
const scoreGame = plays =>
|
||||
plays.map(([o, p]) =>
|
||||
(p + 1) + // shape score
|
||||
3 * (o == p) + // draw
|
||||
6 * ((o + 1) % 3 == p) // win
|
||||
);
|
||||
|
||||
const wrongScores = scoreGame(data);
|
||||
const totalScore = wrongScores.reduce((t, s) => t + s, 0)
|
||||
console.log(`Total Score: ${totalScore}`);
|
||||
|
||||
const actualPlays = data.map(([o, a]) => [
|
||||
o,
|
||||
(o + [2, 0, 1][a]) % 3
|
||||
]);
|
||||
const correctScores = scoreGame(actualPlays);
|
||||
const correctTotalScore = correctScores.reduce((t, s) => t + s, 0)
|
||||
console.log(`Correct Total Score: ${correctTotalScore}`);
|
||||
|
Loading…
Reference in New Issue
Block a user