2022. 8. 16. 23:32γκ°λ°/μ½λ©ν μ€νΈ
νμλ²(Greedy) > 체μ‘볡
μ μ¬μκ°μ λλμ΄ λ€μ΄, μΌλΆ νμμ΄ μ²΄μ‘볡μ λλλΉνμ΅λλ€. λ€νν μ¬λ² 체μ‘λ³΅μ΄ μλ νμμ΄ μ΄λ€μκ² μ²΄μ‘볡μ λΉλ €μ£Όλ € ν©λλ€. νμλ€μ λ²νΈλ 체격 μμΌλ‘ λ§€κ²¨μ Έ μμ΄, λ°λ‘ μλ²νΈμ νμμ΄λ λ°λ‘ λ·λ²νΈμ νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
μ 체 νμμ μ n, 체μ‘볡μ λλλΉν νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ lost, μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ reserveκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, 체μ‘μμ μ λ€μ μ μλ νμμ μ΅λκ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
- μ 체 νμμ μλ 2λͺ μ΄μ 30λͺ μ΄νμ λλ€.
- 체μ‘볡μ λλλΉν νμμ μλ 1λͺ μ΄μ nλͺ μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
- μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμμ μλ 1λͺ μ΄μ nλͺ μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
- μ¬λ² 체μ‘λ³΅μ΄ μλ νμλ§ λ€λ₯Έ νμμκ² μ²΄μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
- μ¬λ² 체μ‘볡μ κ°μ Έμ¨ νμμ΄ μ²΄μ‘볡μ λλλΉνμ μ μμ΅λλ€. μ΄λ μ΄ νμμ 체μ‘볡μ νλλ§ λλλΉνλ€κ³ κ°μ νλ©°, λ¨μ 체μ‘λ³΅μ΄ νλμ΄κΈ°μ λ€λ₯Έ νμμκ²λ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
λ΄ λ΅λ³
function solution(n, lost, reserve) {
const reserveSet = new Set(reserve);
lost.sort();
reserve.sort();
// μ¬λ² 체μ‘볡μ κ°μ Έμ¨ νμμ΄ μ²΄μ‘볡μ λλλΉν κ²½μ° μ κ±°
let answer = lost.filter((v) => {
if(reserveSet.has(v)){
reserveSet.delete(v);
return false;
}
return true;
})
answer = answer.filter((v) => {
if(reserveSet.has(v-1)){
reserveSet.delete(v-1)
return false
} else if (reserveSet.has(v+1)){
reserveSet.delete(v+1)
return false
}
return true
}).length;
return n - answer
}
- μ΄λ² λ¬Έμ λ ν μ€νΈμΌμ΄μ€κ° κ³μ μΆκ°λλ©΄μ ꡬννκΈ°κ° μ μ κΉλ€λ‘μμ‘λ€κ³ λκΈμ΄ λ¬λ¦° λ¬Έμ μλ€. μΌλ¨ λλ μκ°λ³΅μ‘λλ₯Ό O(n)μΌλ‘ κ°μ Έκ°κΈ° μν΄μ 'μ¬λ²μ 체μ‘볡μ κ°μ§κ³ μμ§λ§ 체μ‘볡μ λλλΉν κ²½μ°'λ₯Ό μ κ±°νλ λ‘μ§μ λ¨Όμ μννλ€.
- κ·Έ νμλ if-elseλ¬ΈμΌλ‘ λ°λ‘ μ/λ€μ νμμκ² λΉλ¦¬λ κ²½μ°, reserveSet(μ¬λ²μ체μ‘볡 μ )μμ ν΄λΉ 체μ‘볡 λ°μ΄ν°λ₯Ό μμ νκ³ falseλ₯Ό 리ν΄νμ¬ νν°λ§ν΄μ£Όμλ€.
- μ΄ κ³Όμ μμ μ¬λ²μ 체μ‘볡μ λΉλ¦¬μ§ λͺ»ν νμλ€λ§μ΄ answerμ λ΄κΈ°κ³ , μ 체νμμ μ nμμ answerμ lengthλ₯Ό λΉΌμ£Όμλ€.
λ€λ₯Έ λΆλ€ λ΅λ³
function solution(n, lost, reserve) {
return n - lost.filter(a => {
const b = reserve.find(r => Math.abs(r-a) <= 1)
if(!b) return true
reserve = reserve.filter(r => r !== b)
}).length
}
=> μκ°λ³΅μ‘λκ° O(n^2)μΌλ‘ μ±λ₯μμΌλ‘λ μ‘°κΈ μν΄λ₯Ό 보μ§λ§ μ½λκ° κ΅μ₯ν μ§§μλ€. νΉν findλ₯Ό μ¬μ©ν΄μ μ λκ° λΉκ΅λ‘ νν°λ§νλ λ°©λ²μ λ³΄κ³ μ μ§μ§ λλνμꡬλ νκ³ κ°ννλ€!

νμ§λ§ μ§κΈμ μμ μ¬μ§κ³Ό κ°μ΄ ν μ€νΈμΌμ΄μ€κ° μΆκ°λλ©΄μ 'μ¬λ²μ μ±κ²ΌμΌλ λλλΉν νμ'μ λν μ²λ¦¬κ° λμ§ μμ μ½λλ λͺλͺ ν μ€νΈμΌμ΄μ€μμ μ€ν¨μ²λ¦¬κ° λλ€. λ°λΌμ μ΄ μ½λκ° νμ¬μ κΈ°μ€μΌλ‘λ ν΅κ³Όλ μ μλλ‘ λ°κΎΌλ€λ©΄ μ΄λ κ² λ κ² κ°μλ°..
function solution(n, lost, reserve) {
lost.sort();
reserve.sort();
lost = lost.filter(a => {
const b = reserve.find(r => r==a);
if(!b) return true
reserve = reserve.filter(r => r!==b);
})
return n - lost.filter(a => {
const b = reserve.find(r => Math.abs(r-a) <= 1)
if(!b) return true
reserve = reserve.filter(r => r !== b)
}).length
}

μ½λ μ€μ΄λκ±Έ κ΅μ₯ν μνμλ λΆλ€μ λ μ§§κ² μ€μ΄μ€ μλ μμ κ² κ°μλ°, λλ μ°μ μ μ΄λ κ² ν μ€νΈμΌμ΄μ€λ₯Ό λͺ¨λ λ€ ν΅κ³Όνλκ±Έλ‘ λ°κΏλ³Έ κ±Έλ‘ λ§μ‘±νκ³ μ€λ ₯μ μμμΌκ² λ€..^^
'κ°λ° > μ½λ©ν μ€νΈ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [Lv1] 2022μΉ΄μΉ΄μ€ > μ±κ²©μ ν κ²μ¬νκΈ° (0) | 2022.08.23 |
|---|---|
| [Lv1] 2021μΉ΄μΉ΄μ€ > μ«μ λ¬Έμμ΄κ³Ό μλ¨μ΄ (0) | 2022.08.09 |