From 0d0b85d4afe7a9f7cfb5db481169aad8b66b6a9f Mon Sep 17 00:00:00 2001 From: Alix von Schirp Date: Wed, 3 Dec 2025 15:56:14 +0100 Subject: [PATCH] solution: 2025/3 Signed-off-by: Alix von Schirp --- src/2025/3/1/index.ts | 19 +++++++++++++++++++ src/2025/3/2/index.ts | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 src/2025/3/1/index.ts create mode 100644 src/2025/3/2/index.ts diff --git a/src/2025/3/1/index.ts b/src/2025/3/1/index.ts new file mode 100644 index 0000000..272a739 --- /dev/null +++ b/src/2025/3/1/index.ts @@ -0,0 +1,19 @@ +export default async function runner(inputPath: string){ + const input = (await Bun.file(inputPath).text()).trimEnd(); + + let sum = 0; + + input.split("\n").forEach(line => { + let compare = 0; + if(line.trim() === "") return; + for(let i = 0; i compare) compare = wip; + } + } + sum += compare; + }) + + console.log(sum); +} diff --git a/src/2025/3/2/index.ts b/src/2025/3/2/index.ts new file mode 100644 index 0000000..4d0c2fc --- /dev/null +++ b/src/2025/3/2/index.ts @@ -0,0 +1,43 @@ +export default async function runner(inputPath: string){ + const input = (await Bun.file(inputPath).text()).trimEnd(); + + let sum = 0; + + input.split("\n").forEach(line => { + let compare = 0; + if(line.trim() === "") return; + + let removals = line.length-12; + const result: number[] = []; + for(let i = 0; i < line.length; i++){ + const pointed = parseInt(line[i]!); + if(removals === 0 || result.length === 0) { + result.push(pointed); + continue; + } + while (removals > 0 && result.length > 0 && result[result.length - 1]! < pointed) { + result.pop(); + removals--; + } + result.push(pointed); + } + + const final = result.length===12 ? result.join("") : result.map((value, index) => [index, value]) + .sort((a, b) => { + if (b[1] !== a[1]) { + return b[1]! - a[1]!; + } + return a[0]! - b[0]!; + }) + .slice(0, 12) + .sort((a, b) => a[0]! - b[0]!) + .map(value => value[1]) + .join(""); + + sum += parseInt(final) + }) + + console.log() + console.log() + console.log(sum); +}