made it though day04
This commit is contained in:
parent
621e86e192
commit
9a0e26a9e3
1000
2022/day04/input
Normal file
1000
2022/day04/input
Normal file
File diff suppressed because it is too large
Load diff
6
2022/day04/input.test
Normal file
6
2022/day04/input.test
Normal 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
48
2022/day04/main.mjs
Normal 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
|
||||
}
|
Loading…
Reference in a new issue