Compare commits

...

2 commits

Author SHA1 Message Date
Nikurasu 9a0e26a9e3 made it though day04 2022-12-26 15:35:08 +01:00
Nikurasu 621e86e192 removed deprecated substr from day03 2022-12-24 11:04:01 +01:00
4 changed files with 1056 additions and 2 deletions

View file

@ -13,8 +13,8 @@ let group = []
rl.on('line', line => {
let inventory = [
line.substr(0, line.length/2),
line.substr(line.length/2)
line.substring(0, line.length/2),
line.substring(line.length/2)
]
let dublicate = ""
inventory0Loop:

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
}