Всем привет. Подскажите, верно ли я решил данную задачу?
/*
Даны даты заезда и отъезда каждого гостя.
Для каждого гостя дата заезда строго раньше даты отъезда (то есть каждый гость останавливается хотя бы на одну ночь).
В пределах одного дня считается, что сначала старые гости выезжают, а затем въезжают новые. Найти максимальное число постояльцев, которые одновременно проживали в гостинице (считаем, что измерение количества постояльцев происходит в конце дня).
*/
const dates = [
[1, 2],
[1, 3],
[2, 4],
[2, 3],
]
const f = (arr) => {
let acc = 0;
let arrivalDate = arr.reduce((accumulator, currentValue) => {
let key = currentValue[0]
if (accumulator[key]) {
accumulator[key] += 1
} else {
accumulator[key] = 1
}
return accumulator
}, {});
let departureDate = arr.reduce((accumulator, currentValue) => {
let key = currentValue[1]
if (accumulator[key]) {
accumulator[key] += 1
} else {
accumulator[key] = 1
}
return accumulator
}, {});
for (let i = 0; i < arr.length; i++) {
let current = arr[i];
acc -= departureDate[current[1]];
acc += arrivalDate[current[0]];
}
return acc;
}
console.log(f(dates));