Compare commits
2 Commits
11d4023e2d
...
add1fd2239
Author | SHA1 | Date |
---|---|---|
Aelita4 | add1fd2239 | |
Aelita4 | 26990dcbf6 |
|
@ -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)
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue