Day 11 Part 1
This commit is contained in:
37
2024/11/index.ts
Normal file
37
2024/11/index.ts
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
const input = fs.readFileSync(__dirname + '/input.txt', 'utf8');
|
||||||
|
|
||||||
|
let stones: Array<string> = input.slice(0, -1).split(' ');
|
||||||
|
|
||||||
|
let sum = 0;
|
||||||
|
|
||||||
|
function splitStones(stones: Array<string>) {
|
||||||
|
const newStones: Array<string> = [];
|
||||||
|
stones.forEach((stone) => {
|
||||||
|
if (stone === '0') {
|
||||||
|
newStones.push('1');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const len = stone.length;
|
||||||
|
if (len % 2 === 0) {
|
||||||
|
newStones.push(stone.slice(0, len / 2));
|
||||||
|
let last = stone.slice(len / 2);
|
||||||
|
newStones.push(''+(parseInt(last)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
newStones.push(''+(parseInt(stone) * 2024));
|
||||||
|
});
|
||||||
|
return newStones;
|
||||||
|
}
|
||||||
|
|
||||||
|
let newStones = stones;
|
||||||
|
|
||||||
|
const blinks = 25;
|
||||||
|
|
||||||
|
for (let i = 0; i < blinks; i++) {
|
||||||
|
newStones = splitStones(newStones);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(newStones.length);
|
||||||
|
|
||||||
Reference in New Issue
Block a user