ν°μ€ν 리 λ·°
λ¬Έμ
ν κ°μ νμμ€μ΄ μλλ° μ΄λ₯Ό μ¬μ©νκ³ μ νλ nκ°μ νμλ€μ λνμ¬ νμμ€ μ¬μ©νλ₯Ό λ§λ€ λ €κ³ νλ€. κ° νμμ λν΄ μμμκ°κ³Ό λλλ μκ°μ΄ μ£Όμ΄μ Έ μκ³ , κ° νμκ° κ²ΉμΉμ§ μκ² ν λ©΄μ νμμ€μ μ¬μ©ν μ μλ μ΅λμμ νμλ₯Ό μ°ΎμλΌ. λ¨, νμλ νλ² μμνλ©΄ μ€κ°μ μ€ λ¨λ μ μμΌλ©° ν νμκ° λλλ κ²κ³Ό λμμ λ€μ νμκ° μμλ μ μλ€.
λ¬Έμ νμ΄
- μμ μκ°μ κΈ°μ€μΌλ‘ μμ°¨ νμμ λμμΌνκΈ° λλ¬Έμ μ€λ¦μ°¨μμΌλ‘ μλ£κ΅¬μ‘°λ₯Ό μ λ ¬_ μμμκ°κ³Ό μ’ λ£μκ°μ΄ κ°μ κ²½μ°λ μκΈ° λλ¬Έ
- νμ¬ μ°Έμ‘°νκ³ μλ νμ μ’ λ£μκ°λ³΄λ€ νμ μμμκ°μ΄ κ°κ±°λ ν΄ κ²½μ° νμ κ°λ₯
- νμκ° κ°λ₯ν νμ μμμκ°μ κ·Έ λ€μ μ’ λ£μκ°μΌλ‘ λ³κ²½
μ½λ
function solution(...arr) {
let answer = 0;
arr.sort((a, b) => a[0] - b[0]); //νμ μμ μκ° κΈ°μ€μΌλ‘ μ€λ¦μ°¨μ μ λ ¬
for(let i = 0; i < arr.length; i++) {
let tmp = arr[i][1]; //νμ μ’
λ£μκ°
let count = 1;
for(let j = i + 1; j < arr.length; j++) {
if(arr[j][0] >= tmp) { //νμκ° μ΄μ νμκ° μ’
λ£λ μκ°λμΌ κ²½μ°
tmp = arr[j][1]; //νμ μ’
λ£μκ° λ³κ²½
count++;
}
}
answer = Math.max(answer, count);
}
return answer;
}
console.log(solution([1, 4], [2,3], [3,5], [4,6], [5,7]));
μ€λ΅
νμ(그리λ) μκ³ λ¦¬μ¦(Greedy algorithm)
- μ΅μ ν΄λ₯Ό ꡬνλ μν©μμ μ¬μ©νλ λ°©λ²
- μ¬λ¬ κ²½μ° μ€ νλλ₯Ό μ νν λ κ·Έκ²μ΄ κ·Έ μν©μμ κ°μ₯ μ’λ€κ³ μκ°νλ κ²μ μ νν΄ λκ°λ λ°©μ
- κ°μ₯ μ’μ κ²°κ³Όλ₯Ό μ»λ κ²μ΄ 보μ₯λλ κ²μ μλ
κ°μ₯ λ§μ νμλ₯Ό ν΄μΌλλ μν© μμμ μμ λ¬Έμ νμ΄μ κ°μ΄ μμ μκ°μ μ λ ¬ κΈ°μ€μΌλ‘ μΌκ² λλ€λ©΄ λ€μ κ·Έλ¦Όκ³Ό κ°μ λ¬Έμ κ° μκΈ΄λ€.
μμμκ°μ΄λ νμ μκ°μ΄ κ°μ₯ 짧μ μλλ‘ μ λ ¬μ νκ² λ κ²½μ° νμκ° κ°λ₯ν μκ°λμ κΈ°νλ₯Ό λμΉκ² λλ λ¬Έμ κ° μ겨 μ΅μ μ κ²°κ³Όλ₯Ό μ°μΆνμ§ λͺ»νλ€.
λν λ¬Έμ μμ 쑰건 μ€ νμ μμμκ°κ³Ό μ’ λ£μκ°μ΄ κ°μ κ²½μ°κ° μλ€.
μ΄λλ μ’ λ£μκ°μ κΈ°μ€μΌλ‘ μ λ ¬νκ² λλ€λ©΄ λ§μ§λ§ μκ°λ(μμμκ°κ³Ό μ’ λ£μκ°μ΄ κ°μ κ²½μ°)μ νμλ§ μ§ννκΈ° λλ¬Έμ μ΅μ μ κ²°κ³Όλ₯Ό μ°μΆνμ§ λͺ»νλ€.
μ΄λ₯Ό μν΄ μμμκ°κ³Ό μ’ λ£μκ°μ΄ κ°μ κ²½μ°μλ μμμκ°μ κΈ°μ€μΌλ‘ μ λ ¬ν΄μΌ νλ€.
μ½λ
function solution(arr){
let answer=0;
arr.sort((a, b)=>{
if(a[1]===b[1]) return a[0]-b[0]; //νμμκ°κ³Ό μ’
λ£μκ°μ΄ κ°μ κ²½μ°μλ§ μμμκ°μΌλ‘ μ λ ¬
else return a[1]-b[1];
})
let et=0;
for(let x of arr){
if(x[0]>=et){
answer++;
et=x[1];
}
}
return answer;
}
let arr=[[1, 4], [2, 3], [3, 5], [4, 6], [5, 7]];
console.log(solution(arr));
'μκ³ λ¦¬μ¦ > νκ·Έ λ³ νμ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ΄λΆνμ (0) | 2021.07.25 |
---|---|
[그리λ]κ²°νΌμ (0) | 2021.07.24 |
μ’ν μ λ ¬ (0) | 2021.07.22 |
μ₯λκΎΈλ¬κΈ° νμ (0) | 2021.07.21 |
Least Recently Used (0) | 2021.07.20 |