Compare commits

...

2 Commits

Author SHA1 Message Date
Aelita4 add1fd2239
04_2 2022-12-04 15:42:22 +01:00
Aelita4 26990dcbf6
04_1 2022-12-04 15:35:31 +01:00
2 changed files with 1044 additions and 0 deletions

44
day04/index.js Normal file
View File

@ -0,0 +1,44 @@
import { readFileSync } from "fs";
const input = readFileSync("pairs.txt", "utf-8");
const assignments = [];
let pairs, countPairs = 0, countOverlap = 0;
input.split('\n').forEach(pair => {
for(let i = 0; i < 2; i++) {
assignments[i] = [];
for(let j = 0; j < 99; j++) {
assignments[i][j] = ".";
}
}
pairs = pair.split(',');
const betweenOne = pairs[0].split('-').map(x => parseInt(x));
const betweenTwo = pairs[1].split('-').map(x => parseInt(x));
for(let i = betweenOne[0]; i <= betweenOne[1]; i++) {
assignments[0][i - 1] = i;
}
for(let i = betweenTwo[0]; i <= betweenTwo[1]; i++) {
assignments[1][i - 1] = i;
}
let isOneInside = true, isTwoInside = true, foundOverlap = false;
for(let i = 0; i < 99; i++) {
if(assignments[0][i] !== "." && assignments[0][i] !== assignments[1][i]) isOneInside = false;
if(assignments[1][i] !== "." && assignments[0][i] !== assignments[1][i]) isTwoInside = false;
if(assignments[0][i] !== "." && assignments[0][i] === assignments[1][i] && !foundOverlap) {
foundOverlap = true;
countOverlap++;
}
}
if(isOneInside || isTwoInside) countPairs++;
});
console.log(countPairs)
console.log(countOverlap)

1000
day04/pairs.txt Normal file

File diff suppressed because it is too large Load Diff