π section07 - 8 - νμμ€ λ°°μ (greedy)
μ΄λ² λ¬Έμ λ greedy
λ¬Έμ λ€. greedy
κ° λ¬΄μμΈμ§ κΆκΈνλ€λ©΄ μ΄μ μ μμ±ν κΈμ μ°Έκ³ νμ. λ³΄ν΅ μ λ ¬ λ¬Έμ μ μμ£Ό μ§μ μ§μ΄ μΆμ λλλ° κ°μ μ μλκ»μ μ λ ¬ μ΄ν μμλλ‘ νλμ© μ²λ¦¬νλ λ‘μ§μ΄λ μ°μ μμ νλ₯Ό μ¬μ©νλ λ‘μ§μ λ³΄ν΅ κ·Έλ¦¬λλ‘ νλ©΄ λλ€κ³ νμ
¨λ€.
λ¬Έμ μμ νμκ° κ²ΉμΉμ§ μμΌλ©΄μ νμμ€μ μ¬μ©ν μ μλ μ΅λμμ νμλ₯Ό μ°ΎμΌλΌκ³ νλλ°, μ΅λν λ§μ΄ νμλ₯Ό νλ €λ©΄ λλλ μκ°μ΄ 짧μ μμλλ‘ μ λ ¬νκ³ νμ΄μΌ νλ€. λλλ μκ°μ΄ κΈ΄ μκ°λΆν° νκ² λλ©΄ λ§μ½, ν΄λΉ μκ°μ΄ λλκΈ° μ μ 2κ°μ νμλ₯Ό μ§νν μ μλ€λ©΄ μν΄κΈ° λλ¬Έμ΄λ€.
- λλλ νμ μμΌλ‘ μ€λ¦μ°¨μ μ λ ¬νλ€.
- μ΄μ νμ μ’
λ£μκ°
eT(endTime)=0
μΌλ‘ μ΄κΈ°ν νλ€. - νμ¬ νμ μμμκ°κ³Ό μ΄μ νμ μ’
λ£μκ°μ λΉκ΅νμ¬ νμ¬ νμ μμμκ°μ΄ μ΄μ νμ μ’
λ£μκ°λ³΄λ€ ν¬κ±°λ κ°μΌλ©΄ νμλ₯Ό μ§ννλ€. (
x[0]
: νμ¬ νμ μμμκ°,eT
: μ΄μ νμ μ’ λ£μκ°) μ΄νcnt++
- νμ¬
eT
μλx[1]
(νμ¬ νμ μ’ λ£μκ°)μ ν λΉνλ€. - λ°λ³΅λ¬Έ λκΉμ§ λΉκ΅νλ€.
let n = 5;
let arr = [[1, 4], [2, 3], [3, 5], [4, 6], [5, 7]];
console.log(solution(n, arr));
function solution(n, arr) {
arr.sort((a, b) => {
if (a[1] === b[1]) return a[0] - b[0];
else return a[1] - b[1];
});
let eT = 0;
let cnt = 0;
for (let x of arr) {
if (eT <= x[0]) {
eT = x[1];
cnt++;
}
}
return cnt;
}
λκΈ