From 48f1604ed2482978a70b98eb16b3588068827088 Mon Sep 17 00:00:00 2001 From: "Alix von Schirp @ BootMedia Media Production" Date: Wed, 11 Dec 2024 22:10:52 +0100 Subject: [PATCH] WIP-Day 9 --- Day 09/Part 1/index.ts | 37 +++++++++++++++++++++++++++++++++++++ Day 09/Part 2/index.ts | 0 2 files changed, 37 insertions(+) create mode 100644 Day 09/Part 1/index.ts create mode 100644 Day 09/Part 2/index.ts diff --git a/Day 09/Part 1/index.ts b/Day 09/Part 1/index.ts new file mode 100644 index 0000000..0f045d6 --- /dev/null +++ b/Day 09/Part 1/index.ts @@ -0,0 +1,37 @@ +import fs from 'node:fs'; + +export default function runner(input: string) { + + const fsblk: number[]= [] + + let id = 0; + fs.readFile(`./${input}`, 'utf8', (err, data) => { + if (err) throw err; + for (let i = 0; i < data.length; i++) { + for(let j = 0; j < parseInt(data.charAt(i)); j++) { + if(i%2 == 0){ + fsblk.push(id) + } else { + fsblk.push(-1) + } + } + if(i%2 == 0) id++; + } + + for (let i = 0; i < fsblk.length; i++) { + while(fsblk[i] === -1) fsblk[i] = fsblk.pop()??-1 + } + + // console.log(fsblk) + + let checksum = 0; + + fsblk.forEach((value, index) => { + checksum += value*index + // console.log(`${value} * ${index} = ${value*index} (total: ${checksum}`) + }) + + console.log(checksum) + + }) +} \ No newline at end of file diff --git a/Day 09/Part 2/index.ts b/Day 09/Part 2/index.ts new file mode 100644 index 0000000..e69de29