κ²°νΌμ(νμ μκ³ λ¦¬μ¦)
λ¬Έμ (μΆμ² : μΈνλ° μλ°μ€ν¬λ¦½νΈ μκ³ λ¦¬μ¦ λ¬Έμ νμ΄ κ°μ, μ 보μ¬λ¦ΌνΌμλ)
νμλ λ€μ λ¬μ κ²°νΌμ ν©λλ€.
νμλ κ²°νΌμ νΌλ‘μ°μ μ₯μλ₯Ό λΉλ € 3μΌκ° μ¬μ§ μκ³ νλ €κ³ ν©λλ€.
νΌλ‘μ°μ μ°Έμνλ μΉκ΅¬λ€ Nλͺ
μ μ°Έμνλ μκ°μ 보λ₯Ό νμλ μΉκ΅¬λ€μκ² λ―Έλ¦¬ μꡬνμ΅λλ€. κ° μΉκ΅¬λ€μ μμ μ΄ λͺ μμ λμ°©ν΄μ λͺ μμ λ λ κ²μΈμ§ νμμκ² μλ €μ£Όμμ΅λλ€.
νμλ μ΄ μ 보λ₯Ό λ°νμΌλ‘ νΌλ‘μ° μ₯μμ λμμ μ‘΄μ¬νλ μ΅λ μΈμμλ₯Ό ꡬνμ¬ κ·Έ μΈμμ μμ©ν μ μλ μ₯μλ₯Ό λΉλ¦¬λ €κ³ ν©λλ€. μ¬λ¬λΆμ΄ νμλ₯Ό λμμ£ΌμΈμ.
λ§μ½ ν μΉκ΅¬κ° μ€λ μκ° 13, κ°λμκ° 15λΌλ©΄ μ΄ μΉκ΅¬λ 13μ μ κ°μ νΌλ‘μ° μ₯μ μ‘΄μ¬νλ κ²μ΄κ³ 15μ μ κ°μλ μ‘΄μ¬νμ§ μλλ€κ³ κ°μ ν©λλ€.
β£ μ
λ ₯μ€λͺ
첫째 μ€μ νΌλ‘μ°μ μ°Έμν μΈμμ N(5<=N<=100,000)μ΄ μ£Όμ΄μ§λλ€.
λ λ²μ§Έ μ€λΆν° Nμ€μ κ±Έμ³ κ° μΈμμ μ€λ μκ°κ³Ό κ°λ μκ°μ΄ μ£Όμ΄μ§λλ€.
μκ°μ 첫λ 0μλ₯Ό 0μΌλ‘ ν΄μ λ§μ§λ§λ λ°€ 12μλ₯Ό 72λ‘ νλ νμλΌμΈμΌλ‘ μ€λ μκ°κ³Ό κ° λ μκ°μ΄ μμ΄ μλ μ μλ‘ ννλ©λλ€.
β£ μΆλ ₯μ€λͺ
첫째 μ€μ νΌλ‘μ°μ₯μ λμμ μ‘΄μ¬νλ μ΅λ μΈμμ μΆλ ₯νμΈμ.
β£ μ λ ₯μμ 1
5
14 18
12 15
15 20 20 30 5 14
β£ μΆλ ₯μμ 1
2
Tip

λ¬Έμ νμ΄
//κ°μ λ£κ³ λ΄κ° μμ±ν μ½λ
function solution(arr){
let answer = Number.MIN_SAFE_INTEGER;
let timeLine = [];
let count = 0;
for(let x of arr){
timeLine.push([x[0],1]);
timeLine.push([x[1],0]);
}
timeLine.sort((a,b)=>{
if(a[0]===b[0])return a[1]-b[1];
else return a[0] - b[0];
});
for(let x of timeLine){
if(x[1] === 1){
count++;
}else if(x[1] === 0){
count--;
}
if(count > answer) answer = count;
}
return answer;
}
let arr = [
[14,18],
[12,15],
[15,20],
[20,30],
[5,14],
[13,16]
];
console.log(solution(arr));