made it though day04

This commit is contained in:
Nikurasu 2022-12-26 15:35:08 +01:00
parent 621e86e192
commit 9a0e26a9e3
3 changed files with 1054 additions and 0 deletions

1000
2022/day04/input Normal file

File diff suppressed because it is too large Load diff

6
2022/day04/input.test Normal file
View file

@ -0,0 +1,6 @@
2-4,6-8
2-3,4-5
5-7,7-9
2-8,3-7
6-6,4-6
2-6,4-8

48
2022/day04/main.mjs Normal file
View file

@ -0,0 +1,48 @@
import fs from 'node:fs'
import readline from 'node:readline'
const rl = readline.createInterface({
input: fs.createReadStream('input'),
output: process.stdout,
terminal: false
})
let groupcount = 0
let linecount = 0
let overlapcount = 0
rl.on('line', line => {
let containsRange = []
let overlapRange = []
let groups = line.split(',').map(value => value.split('-'))
let group0Range = range(groups[0][0], groups[0][1])
let group1Range = range(groups[1][0], groups[1][1])
containsRange = [
group0Range.every(elem => group1Range.includes(elem)),
group1Range.every(elem => group0Range.includes(elem)),
]
if (containsRange[0] || containsRange[1]) {
groupcount++
}
overlapRange = [
group0Range.some(elem => group1Range.includes(elem)),
group1Range.some(elem => group0Range.includes(elem)),
]
if (overlapRange[0] || overlapRange[1]) {
overlapcount++
}
linecount++
})
rl.on('close', () => {
console.log(`${groupcount} groups fully contain each other`)
console.log(`${overlapcount} groups overlap each other`)
console.log(`There are ${linecount} groups in general`)
})
function range(start = 0, end = 0) {
let rangeArray = []
for(let i = parseInt(start); i <= end; i++) {
rangeArray.push(i)
}
return rangeArray
}