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