π©π»βπ»λ¬Έμ λ§ν¬
λ¬Έμ μ€λͺ
μ μ¬μκ°μ λλμ΄ λ€μ΄, μΌλΆ νμμ΄ μ²΄μ‘볡μ λλλΉνμ΅λλ€. λ€νν μ¬λ² 체μ‘λ³΅μ΄ μλ νμμ΄ μ΄λ€μκ² μ²΄μ‘볡μ λΉλ €μ£Όλ € ν©λλ€. νμλ€μ λ²νΈλ 체격 μμΌλ‘ λ§€κ²¨μ Έ μμ΄, λ°λ‘ μλ²νΈμ νμμ΄λ λ°λ‘ λ·λ²νΈμ νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€. μλ₯Ό λ€μ΄, 4λ² νμμ 3λ² νμμ΄λ 5λ² νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€. 체μ‘λ³΅μ΄ μμΌλ©΄ μμ
μ λ€μ μ μκΈ° λλ¬Έμ 체μ‘볡μ μ μ ν λΉλ € μ΅λν λ§μ νμμ΄ μ²΄μ‘μμ
μ λ€μ΄μΌ ν©λλ€.
μ 체 νμμ μ n, 체μ‘볡μ λλλΉν νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ lost, μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ reserveκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, 체μ‘μμ μ λ€μ μ μλ νμμ μ΅λκ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
μ 체 νμμ μλ 2λͺ
μ΄μ 30λͺ
μ΄νμ
λλ€.
체μ‘볡μ λλλΉν νμμ μλ 1λͺ
μ΄μ nλͺ
μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμμ μλ 1λͺ
μ΄μ nλͺ
μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
μ¬λ² 체μ‘λ³΅μ΄ μλ νμλ§ λ€λ₯Έ νμμκ² μ²΄μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
μ¬λ² 체μ‘볡μ κ°μ Έμ¨ νμμ΄ μ²΄μ‘볡μ λλλΉνμ μ μμ΅λλ€. μ΄λ μ΄ νμμ 체μ‘볡μ νλλ§ λλλΉνλ€κ³ κ°μ νλ©°, λ¨μ 체μ‘λ³΅μ΄ νλμ΄κΈ°μ λ€λ₯Έ νμμκ²λ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
μ
μΆλ ₯ μ
n lost reserve return
5 [2, 4] [1, 3, 5] 5
5 [2, 4] [3] 4
3 [3] [1] 2
μ
μΆλ ₯ μ μ€λͺ
μμ #1
1λ² νμμ΄ 2λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όκ³ , 3λ² νμμ΄λ 5λ² νμμ΄ 4λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όλ©΄ νμ 5λͺ
μ΄ μ²΄μ‘μμ
μ λ€μ μ μμ΅λλ€.
μμ #2
3λ² νμμ΄ 2λ² νμμ΄λ 4λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όλ©΄ νμ 4λͺ
μ΄ μ²΄μ‘μμ
μ λ€μ μ μμ΅λλ€.
βοΈIdea Sketch
2021-06-18
- (4λ² μ£Όμ) νμ iκ° μ¬λ²μ·λ μ±κΈ°κ³ νλ λλλΉν κ²½μ°, λΉλ €μ€ μ μμ
- lost.includes(i) === reserve.includes(i) === true
ls.delete(i)
rs.delete(i)
- λ°λ‘ μλ²νΈμ νμμ΄λ λ°λ‘ λ·λ²νΈμ νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μλ€
- μμ΄λ²λ¦° νμμ΄ λ€λ₯Έ νμμκ² λΉλ¦΄ μ μλ μν©
- lostμ reserveμμ μ μΈνκΈ°
- μ€λ³΅μλ λ°°μ΄ Set μ¬μ©νκΈ°
let ls = new Set(lost);
let rs = new Set(reserve);
ls.has(i);
ls.delete(i);
ls.size();
- μ¬λ² μ·λ μ±κΈ°κ³ νλ λλλΉν νμμ΄, λ€λ₯Έ νμμκ² λΉλ €μ€¬λ€κ³ κ°μ ν΄λ, returnμ λμΌν¨
μμΈν μΌ 12λ²
n lost reserve return output
5 [2, 3, 4] [3, 4, 5] 4 5
3κ³Ό 4λ λΉλ €μ€ μ μλ€. 2λ 5μ 체μ‘볡μ λΉλ¦΄ μ μλ€.
λ°λΌμ κΈ°λκ°μ 4, λ΄ μ½λκ²°κ³Όλ 5
- μ°μ°
for (let x of ls) {
if (rs.has(x))
else if (rs.has(x-1))
else if (rs.has(x+1))
}
- κ²°λ‘
return n - ls.size();
βοΈμμ€μ½λ
2021-06-18 ν μΌ 12λ² μ€ν¨
function solution(n, lost, reserve) {
let ls = new Set(lost);
let rs = new Set(reserve);
for (let x of ls) {
if (rs.has(x)) {
ls.delete(x)
rs.delete(x)
continue;
}
else if (rs.has(x-1)) {
ls.delete(x)
rs.delete(x-1)
continue;
}
else if (rs.has(x+1)) {
ls.delete(x)
rs.delete(x+1)
continue;
}
}
return n - ls.size;
}
2021-06-18 μ νμ± μ±κ³΅
function solution(n, lost, reserve) {
let ls = new Set(lost);
let rs = new Set(reserve);
for (let x of ls) {
if (rs.has(x)) {
ls.delete(x)
rs.delete(x)
}
}
for (let x of ls) {
if (rs.has(x-1)) {
ls.delete(x)
rs.delete(x-1)
continue;
}
else if (rs.has(x+1)) {
ls.delete(x)
rs.delete(x+1)
continue;
}
}
return n - ls.size;
}
βοΈλͺ λ΅
ν μΌ 12λ² μ€ν¨μ§λ§ λͺ λ΅
function solution(n, lost, reserve) {
return n - lost.filter(a => {
const b = reserve.find(r => Math.abs(r-a) <= 1) // λ°λ‘ μλ²νΈμ νμμ΄λ λ°λ‘ λ·λ²νΈμ νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μλ€
if(!b) return true // λΉλ €μ€ νμμ΄ μλ κ²½μ°, νμ aλ νν° ν΅κ³Ό <-> λΉλ €μ€ νμμ΄ μλ κ²½μ°, νμ aλ lostμμ μμ
reserve = reserve.filter(r => r !== b) // λΉλ €μ€ νμμ΄ μλ κ²½μ°, νμ bλ reserveμμ μμ
}).length
}
- Math.abs() : μ£Όμ΄μ§ μ«μμ μ λκ° λ°ν
Math.abs(null); // 0, null λ΄μ€
Math.abs(-2); // 2
Math.abs(''); // 0, λΉ λ¬Έμμ΄ λ΄μ€
Math.abs('-1'); // 1
Math.abs([]); // 0, λΉ λ°°μ΄ λ΄μ€
Math.abs([2]); // 2
Math.abs([1,2]); // NaN, ν¬κΈ° 1 μ΄κ³Ό λ°°μ΄ μ λ΄μ€
Math.abs({}); // NaN, κ°μ²΄ μ λ΄μ€
Math.abs('string'); // NaN
Math.abs(); // NaN, μμ λΉμΉΈ μ λ΄μ€
- arr.filter() : μ£Όμ΄μ§ 쑰건μ ν΅κ³Όνλ λͺ¨λ μμλ₯Ό λͺ¨μ μλ‘μ΄ λ°°μ΄μ λ°ν
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result); // expected output: Array ["exuberant", "destruction", "present"]
- arr.filter() λ΄μ₯ν¨μμμ return true μλ―Έ? --> ν΅κ³Ό! ν΅κ³Ό!
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => true);
console.log(result); // [ 'spray', 'limit', 'elite', 'exuberant', 'destruction', 'present' ]
- arr.filter() λ΄μ₯ν¨μμμ return false μλ―Έ? --> μμ ! μμ !
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => false);
console.log(result); // []
- arr.find() : μ£Όμ΄μ§ 쑰건μ ν΅κ³Όνλ 첫λ²μ§Έ κ°μ λ°ν
const array1 = [5, 12, 8, 130, 44];
const found = array1.find(element => element > 10);
console.log(found); // expected output: 12