first day

This commit is contained in:
2024-12-01 09:44:04 +01:00
parent 0c0c7cc89d
commit 05f4b0b165
4 changed files with 1064 additions and 7 deletions
+24
View File
@@ -0,0 +1,24 @@
import fs from 'node:fs';
const file = fs.readFileSync('./2024/inputs/1').toString();
const left = []
const right: number[] = []
// for await (const line of file.readLines()) {
// }
const regexes = file.matchAll(/^(\d+) (\d+)$/gm)
for(const match of regexes){
left.push(Number(match[1]))
right.push(Number(match[2]))
}
left.sort()
right.sort()
const result = left.reduce((_prev, curr, index)=>{
return _prev + Math.abs(curr - right[index])
},0)
console.log(result)
+28
View File
@@ -0,0 +1,28 @@
import fs from 'node:fs';
const file = fs.readFileSync('./2024/inputs/1').toString();
const left: number[] = []
const right: number[] = []
const leftOccurences: {[key:number]:number} = {}
const rightOccurences: {[key:number]:number} = {}
const regexes = file.matchAll(/^(\d+) (\d+)$/gm)
for(const match of regexes){
const leftNumber = Number(match[1])
const rightNumber = Number(match[2])
left.push(leftNumber)
right.push(rightNumber)
if(!(rightNumber in rightOccurences)){
rightOccurences[rightNumber] = 0
}
rightOccurences[rightNumber]++
}
const result = left.reduce((_prev, curr, index)=>{
return _prev + (curr * (rightOccurences[curr] ?? 0))
},0)
console.log(result)
+1000
View File
File diff suppressed because it is too large Load Diff
+12 -7
View File
@@ -4,6 +4,7 @@
"requires": true,
"packages": {
"": {
"name": "Advent-of-code",
"dependencies": {
"@digitak/esrun": "^3.2.25",
"typescript": "^5.3.2"
@@ -482,11 +483,12 @@
}
},
"node_modules/braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"license": "MIT",
"dependencies": {
"fill-range": "^7.0.1"
"fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -570,9 +572,10 @@
}
},
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -638,6 +641,7 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -682,6 +686,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},