This commit is contained in:
Chris
2024-12-11 15:37:44 +00:00
parent f3039370f9
commit 8f6ca57372

View File

@@ -4,9 +4,11 @@ const input = fs.readFileSync(__dirname + '/input.txt', 'utf8');
let stones: Array<string> = input.slice(0, -1).split(' '); let stones: Array<string> = input.slice(0, -1).split(' ');
const countMap: { [key: string]: Array<number> } = {};
let sum = 0; let sum = 0;
function splitStones(stones: Array<string>) { function getCountAfter(stone: string, blink: number) {
const newStones: Array<string> = []; const newStones: Array<string> = [];
stones.forEach((stone) => { stones.forEach((stone) => {
if (stone === '0') { if (stone === '0') {
@@ -22,16 +24,17 @@ function splitStones(stones: Array<string>) {
} }
newStones.push(''+(parseInt(stone) * 2024)); newStones.push(''+(parseInt(stone) * 2024));
}); });
return newStones; if (blink === 1) {
return newStones;
}
return newStones.sum((newStone) => getCountAfter(newStone, blink - 1));
} }
let newStones = stones;
const blinks = 25; const blinks = 25;
for (let i = 0; i < blinks; i++) { stones.forEach((stone) => {
newStones = splitStones(newStones); sum += getCountAfter(stone, 25);
} });
console.log(newStones.length); console.log(sum);