Files
2025-12-06 10:01:26 +01:00

63 lines
1.4 KiB
TypeScript

import assert from 'node:assert';
import fs from 'node:fs';
const file = fs.readFileSync('./2025/inputs/6').toString();
let count = 0
class Operation {
public numbers: number[]
public operation?: string
constructor() {
this.numbers = []
}
}
const operations: Operation[] = []
const reversed: string[] = []
for (const line of file.split("\n")) {
reversed.push(line.split('').toReversed().join(""))
}
let currentOperation = new Operation()
operations.push(currentOperation)
reversed[0].split('').forEach((_, lineN) => {
let currentNumber: string[] = []
let s = ""
reversed.forEach((_, colN) => {
s = reversed[colN][lineN]
if (s == " ") {
return
}
const n = Number(s)
if (isNaN(n)) {
return
}
currentNumber.push(s)
})
if (currentNumber.length > 0) {
currentOperation.numbers.push(Number(currentNumber.join("")))
}
currentNumber = []
if (s == "*" || s == "+") {
currentOperation.operation = s
if (currentNumber.length > 0) {
currentOperation.numbers.push(Number(currentNumber.join("")))
}
currentNumber = []
currentOperation = new Operation()
operations.push(currentOperation)
}
})
operations.pop()
const result = operations.reduce((acc, curr) => {
return acc + eval(curr.numbers.join(curr.operation))
}, 0)
console.log(result)