μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- CSS
- position
- useEffect
- μ½λ©ν μ€νΈ
- Flex
- μλ°μ€ν¬λ¦½νΈ
- fetch API
- λΈλ‘κ·Έ
- μκ³ λ¦¬μ¦
- Gatsby
- νλ‘ νΈμλ
- Props
- λ°λΈμ½μ€3κΈ°
- λ°λΈμ½μ€
- REACT
- history api
- useRef
- νλ‘κ·Έλλ¨Έμ€
- float
- Today
- Total
Daehyunii's Dev-blog
10 ν©λ³ μ λ ¬ λ³Έλ¬Έ
10 ν©λ³ μ λ ¬
Daehyunii 2022. 8. 7. 23:48μ§κΈκΉμ§ 곡λΆνλ μ λ ¬λ€μ μΌλ°μ μΈ μ λ ¬ μκ³ λ¦¬μ¦μ΄μλ€. μ΄μ λ λ³΄λ€ ν¨μ¨μ μΈ μ λ ¬ μκ³ λ¦¬μ¦λ€μ λν μ€λͺ μ΄λ€. ν©λ³ μ λ ¬μ μ ννκ² λ§νλ©΄ λΆν΄μ ν©λ³μ νλ κ³Όμ μΌλ‘ μ λ ¬μ΄ μ΄λ€μ§λ€. ν©λ³ μ λ ¬μ 0κ°μ μμ λλ 1κ°μ μμλ μ΄λ―Έ μ λ ¬μ΄ λμ΄μλ€λ κ²μ νμ©νλ μ λ ¬ μκ³ λ¦¬μ¦μ΄λ€. μ¦ μ λ ¬λμ΄ μμ§ μμ λ°°μ΄μ μμκ° 1κ° λλ 0κ°κ° λ λκΉμ§ λ°°μ΄μ λΆν ν ν λ€μ μ λ ¬νλ©΄μ ν©λ³νλ κ²μ΄λ€.(1κ° λλ 0κ°μ μμλ₯Ό κ°μ§λ λ°°μ΄μ μ΄λ―Έ μ λ ¬μ΄ λμ΄ μλ κ²μ΄κΈ° λλ¬Έμ΄λ€.)
μ°μ ν©λ³ μ λ ¬ μκ³ λ¦¬μ¦μ ꡬννκΈ° μν΄μλ μ λ ¬λμ΄ μλ λ λ°°μ΄μ ν©λ³νλ λ°©λ²μ μμμΌ νλ€.
10.1 μ λ ¬λ λ λ°°μ΄ ν©λ³
μμ¬μ½λ
1. μ°μ λ°°μ΄ λ κ°λ₯Ό μΈμλ‘ λ°λ ν¨μλ₯Ό μ μνκ³ , λ§μ§λ§μ λ°νν λΉ λ°°μ΄μ λ³μμ μ μ₯νλ€.
2. λ λ°°μ΄μ μΈλ±μ€λ₯Ό κ°κ° i,j ν¬μΈν°λ‘ λ§λ€κ³ λ°λ³΅λ¬Έμ νμ©νλ€.(whileλ¬Έμ μ¬μ©νλκ²μ΄ μ’λ€)
3. μΈμλ‘ μ λ¬ λ°μ κ° λ°°μ΄μ 첫 λ²μ§Έ μμλΆν° λΉκ΅λ₯Ό μμνλ€.
4. μμ§ μ΄ν΄λ³΄μ§ μμ κ°μ΄ μλ€λ©΄, μ¦ iμ jκ° κ°κ°μ λ°°μ΄ λμ λλ¬νμ§ μμλ€λ©΄, 첫 λ²μ§Έ λ°°μ΄μ κ°μΌλ‘ 첫 λ²μ§Έ μμλ₯Ό μ·¨ν λ€μ λ λ²μ§Έ λ°°μ΄μ 첫 λ²μ§Έ μμμ λΉκ΅νλ€. λΉκ΅ν μμ μ€ λ μμ κ°μ λ³μμ μ μ₯ν λΉ λ°°μ΄μ ν λΉνκ³ ν λΉμ ν λ°°μ΄μ μΈλ±μ€ ν¬μΈν°μ 1μ λνμ¬ λ€λ₯Έ λ°°μ΄κ³Ό λ€μ λΉκ΅νλ€. κ·Έλ¦¬κ³ λ λ°°μ΄μ κΈΈμ΄κ° κ°μ§ μμ μ μμΌλ―λ‘ λ λ°°μ΄λ΄μ λΉκ΅κ° λͺ¨λ λλ ν μμ§ λΉκ΅νμ§ λͺ»ν λλ¨Έμ§ μμλ€μ λΉ λ°°μ΄μ ν λΉνλ€.(μ΄λ―Έ λ€ μ λ ¬μ΄ λμ΄ μλ μνμ΄κΈ° λλ¬Έμ λ€ λ£μ΄λ μ λ ¬λλ€.)
function mergeArray(arr1,arr2){
let results = [];
let i = 0;
let j = 0;
while(i < arr1.length && j < arr2.length){
if(arr1[i] < arr2[j]){
results.push(arr1[i]);
i++;
}else{
results.push(arr2[j]);
j++;
}
}
while(i < arr1.length){ //λΉκ΅ λμ§ λͺ»ν λλ¨Έμ§ μμλ€ μ²λ¦¬νκΈ°
results.push(arr[i]);
i++;
}
while(j < arr2.length){
results.push(arr2[j]); //λΉκ΅ λμ§ λͺ»ν λλ¨Έμ§ μμλ€ μ²λ¦¬νκΈ°
j++;
}
return results;
}
μ΄λ κ² νλ©΄ μ λ ¬μ΄ λμ΄ μλ λ λ°°μ΄μ ν©λ³νλ μκ³ λ¦¬μ¦μ΄ λλ€. μ€μνκ²μ μ΄λ―Έ μ λ ¬μ΄ λμ΄ μλ μνμ λ°°μ΄μ΄μ΄μΌ μ λ ¬λλ©΄μ νλμ λ°°μ΄μ λ§λ€ μ μλ κ²μ΄λ€! κ·Έλ κΈ° λλ¬Έμ ν©λ³ μ λ ¬ μκ³ λ¦¬μ¦μμ μ λ ¬λ μνλ₯Ό λ§λ€κΈ° μν΄ λΆν νλ κ²μ΄λ€. μ΄μ ν©λ³ μ λ ¬μ ꡬνν΄ λ³΄μ
10.2 ν©λ³ μ λ ¬ ꡬν
μ΄μ μ λ ¬λ λ λ°°μ΄μ ν©λ³νλ λ°©λ²μ μμμΌλ, μ΄μ λ°°μ΄μ κ³μ λλλ μμ μ΄ μ΄λ€μ ΈμΌ νλ€. μ΄ κ²½μ°μλ Array.prototype.sliceλ©μλλ₯Ό μ΄μ©νλ κ²μ΄ μ’λ€. arr.sliceλ©μλλ 첫 λ²μ§Έ μΈμλ‘ λ°μ μΈλ±μ€λΆν° λ λ²μ§Έ μΈμλ‘ λ°μ μΈλ±μ€κΉμ§ λ°°μ΄μ 볡μ¬νμ¬ λ°νν΄ μ€λ€. μ¬κΈ°μ μ€μν κ²μ λ°°μ΄μ μμκ° 0κ° λλ 1κ°λ₯Ό κ°μ§λκΉμ§ κ³μ λλ μΌ νλ€λ κ²μ΄λ€. κ·Έ λ€μ μ λ ¬λ λ°°μ΄μ ν©λ³νλ μμ ꡬνν΄ λμ mergeArrayν¨μλ₯Ό μ΄μ©νμ¬ μ λ ¬νλ©΄μ ν©λ³νλ κ²μ΄λ€. λλΆλΆμ ν©λ³ μ λ ¬ ꡬνμ μ¬κ·κ° μ¬μ©λκΈ° λλ¬Έμ μ΄ν΄νλλ° μ΄λ €μμ΄ μμ μ μμΌλ, μ²μ²ν λ°λΌμ€λ©΄ μΆ©λΆν μ΄ν΄ν μ μλ€.
function mergeArray(arr1,arr2){
let results = [];
let i = 0;
let j = 0;
while(i < arr1.length && j < arr2.length){
if(arr1[i] < arr2[j]){
results.push(arr1[i]);
i++;
}else{
results.push(arr2[j]);
j++;
}
}
while(i < arr1.length){ //λΉκ΅ λμ§ λͺ»ν λλ¨Έμ§ μμλ€ μ²λ¦¬νκΈ°
results.push(arr[i]);
i++;
}
while(j < arr2.length){
results.push(arr2[j]); //λΉκ΅ λμ§ λͺ»ν λλ¨Έμ§ μμλ€ μ²λ¦¬νκΈ°
j++;
}
return results;
}
function mergeSort(arr){
if(arr.length <= 1) return arr;
let mid = Math.floor(arr.length/2);
let left = mergeSort(arr.slice(0,mid)); // λ λ²μ§Έλ‘ μ λ¬λ μΈμμ μ§μ κΉμ§κ° λ²μκ° λλ€.
let right = mergeSort(arr.slice(mid));
return mergeArray(left, sright);
}
mergeSort([10,24,76,73])
λ°°μ΄μ κ°μ΄λ°λ₯Ό λνλ΄λ ν¬μΈν°λ₯Ό λ§λ€κ³ κ·Έ ν¬μΈν°λ₯Ό κΈ°μ€μΌλ‘ sliceλ©μλλ₯Ό νμ©νμ¬ 2κ°μ λ°°μ΄λ‘ λΆν ν ν, κ·Έ λΆν λ λ°°μ΄λ€μ μ¬κ·μ μΌλ‘ κ³μ λΆν νκ³ 0κ° λλ 1κ°μ μμλ₯Ό κ°μ§λ κΉμ§ κ³μ λΆν νλ€. κ·Έλ¦¬κ³ λ¦¬ν΄ κ°μΌλ‘ mergeArrayν¨μλ₯Ό νΈμΆνμ¬ μΌμͺ½ μ€λ₯Έ μͺ½ λ°°μ΄μ μ λ ¬νμ¬ ν©λ³νκ³ λ°ννκ³ λ°ννκ³ λ°ννμ¬ λ§μ§λ§μΌλ‘ leftμ ν΄λΉνλ λ²μμ μμλ€μ μ λ ¬μν¨ λ°°μ΄μ ν λΉνκ³ , rightμ ν΄λΉνλ λ²μμ μμλ€μ μ λ ¬μν¨ λ°°μ΄μ ν λΉνλ€. λ§μ§λ§μΌλ‘ λ λ°°μ΄μ mergeArrayν¨μλ₯Ό ν΅ν΄ μ λ ¬ν ν λ°ννλ κ²μ΄λ€.
'π Language & CS knowledge > Algorithm & Data structure' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
13 λ¨μΌ μ°κ²° 리μ€νΈ (0) | 2022.08.12 |
---|---|
11 ν΅ μ λ ¬ (0) | 2022.08.08 |
09 μ½μ μ λ ¬ (0) | 2022.08.07 |
08 μ ν μ λ ¬ (0) | 2022.08.07 |
07 λ²λΈ μ λ ¬ (0) | 2022.08.06 |