[ μλ°μ€ν¬λ¦½νΈ(JavaScript) ] section07 - 9 - κ²°νΌμ
π section07 - 9 - κ²°νΌμ
νΌλ‘μ° μ₯μμ λμμ μ‘΄μ¬νλ μ΅λ μΈμμλ₯Ό ꡬνμ¬ κ·Έ μΈμμ μμ©ν μ μλ μ₯μλ₯Ό λΉλ¦¬λ €κ³ νλ€. λ§μ½, μ λ ₯μ΄ 13 15λΌλ©΄ 13μ μ κ°μ νΌλ‘μ°μ₯μ μ‘΄μ¬νκ³ 15μμλ μ‘΄μ¬νμ§ μλλ€. νΌλ‘μ°μ₯μ λμμ μ‘΄μ¬νλ μ΅λ μΈμμ μΆλ ₯νλ λ¬Έμ λ€.
μ΄ λ¬Έμ λ greedy
λ‘ ν μ μλ λ¬Έμ μΈλ°, νμμ€ λ°°μ μ²λΌ μ
λ ₯μ μ λ ¬μ νλ, μ λ ¬ κΈ°μ€μ κ²°νΌμμ λ±μ₯νλ μκ°(s)
, κ²°νΌμμ₯μμ λκ°λ μκ°(e)
μΌλ‘ λλ μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬μ ν΄μΌ νλ€. μ
λ ₯μ νμλΌμΈ νμμΌλ‘ κ·Έλ €λ³΄λ©΄ λ€μκ³Ό κ°λ€.
μ¬κΈ°μ μ£Όμν μ μ λκ°μκ°(e)
μ ν¬ν¨νμ§ μμΌλ―λ‘ μ€λ¦μ°¨μμΌλ‘ μ λ ¬ν λ λ€μ΄μ€λμκ°(s)
κ³Ό λκ°λμκ°(e)
μ΄ λμΌνλ©΄ e
κ° λ¨Όμ μ€κ² μ€μ νλ€.
- νΌλ‘μ°μ λ±μ₯νλ μκ°κ³Ό λκ°λ μκ°μ λλλ€.
- μκ°μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νλλ° μκ°μ΄ κ°λ€λ©΄ λκ° μκ°μ λ¨Όμ μμ μΈμ΄λ€. (λκ° μκ°μ μ κ°μ μ‘΄μ¬νμ§ μκΈ° λλ¬Έ)
- λ°λ³΅λ¬Έμ λλ©΄μ
s
λ₯Ό λ§λλ©΄cnt++
μ ν΄μ£Όκ³ ,e
λ₯Ό λ§λλ©΄cnt--
λ₯Ό ν΄μ€λ€. cnt
μ μ΅λκ°μ κ°±μ νλ€.
μ¬λ΄μ΄μ§λ§, λ¬Έμλ₯Ό κΈ°μ€μΌλ‘ μ λ ¬νκ³ μΆμΌλ©΄ charCodeAt()
ν¨μλ₯Ό μ¬μ©ν΄ λΉκ΅ λ¬Έμλ₯Ό ASCII
μ½λλ‘ λ°κΎΈμ΄ μ€ λ€μ, κ°μ λΉκ΅ν΄μ£Όλ©΄ λλ€. μ¬κΈ°μ s
μ ASCII
μ½λλ 115
μ΄κ³ , e
λ 101
μ΄λ―λ‘ e
κ° λ μλ€.
let n = 5;
let arr = [[14, 18], [12, 15], [15, 20], [20, 30], [5, 14]];
console.log(solution(n, arr));
function solution(n, arr) {
let tL = [];
for (let x of arr) {
tL.push([x[0], "s"]);
tL.push([x[1], "e"]);
}
tL.sort((a, b) => {
if (a[0] === b[0]) return a[1].charCodeAt() - b[1].charCodeAt();
else return a[0] - b[0];
});
let cnt = 0;
let answer = 0;
for (let x of tL) {
if (x[1] === "s") cnt++;
else cnt--;
answer = Math.max(answer, cnt);
}
return answer;
}