λ°μν
μ¬λΌμ΄λ© μλμ°λ λ°°μ΄μ΄λ λ¬Έμμ΄κ³Ό κ°μ μ ν λ°μ΄ν° ꡬ쑰μμ νΉμ ν¬κΈ°μ 'μλμ°'λ₯Ό μ΄λμν€λ©΄μ λ¬Έμ λ₯Ό ν΄κ²°νλ μκ³ λ¦¬μ¦ κΈ°λ²μ λλ€. μ΄ λ°©λ²μ λ€μκ³Ό κ°μ μν©μμ νΉν μ μ©ν©λλ€:
- μ°μλ μμλ€μ λΆλΆμ§ν©μ μ²λ¦¬ν΄μΌ ν λ
- λ°°μ΄μ΄λ λ¬Έμμ΄μμ νΉμ 쑰건μ λ§μ‘±νλ λΆλΆμ μ°ΎμμΌ ν λ
- κ³ μ λ ν¬κΈ°μ μλμ°λ₯Ό μ΄λμν€λ©΄μ κ³μ°μ μνν΄μΌ ν λ
μ¬λΌμ΄λ© μλμ°μ μλ μ리
- μλμ° ν¬κΈ° μ€μ : λ¬Έμ μ λ°λΌ μ μ ν μλμ° ν¬κΈ°λ₯Ό μ ν©λλ€.
- μ΄κΈ° μλμ° μ€μ : λ°μ΄ν° ꡬ쑰μ μμμ μμ μλμ° ν¬κΈ°λ§νΌμ μμλ₯Ό μ²λ¦¬ν©λλ€.
- μλμ° μ΄λ: μλμ°λ₯Ό ν μΉΈμ© μ΄λμν΅λλ€.
- μλμ° μ λ°μ΄νΈ: μλ‘ μΆκ°λ μμλ₯Ό μ²λ¦¬νκ³ , μ μΈλ μμλ₯Ό μ κ±°ν©λλ€.
- λ°λ³΅: λ°μ΄ν° ꡬ쑰μ λμ λλ¬ν λκΉμ§ 3-4 κ³Όμ μ λ°λ³΅ν©λλ€.
μ¬λΌμ΄λ© μλμ° μμ : μ°μλ KμΌ λμμ μ΅λ λ§€μΆ μ°ΎκΈ°
λ€μκ³Ό κ°μ λ¬Έμ λ₯Ό μκ°ν΄λ΄ μλ€: "μΌλ³ λ§€μΆ λ°μ΄ν°κ° μ£Όμ΄μ‘μ λ, μ°μλ KμΌ λμμ μ΅λ λ§€μΆμ μ°ΎμΌμμ€."
Naive μ κ·Όλ²
λ¨Όμ , κ°μ₯ λ¨μν λ°©λ²μ μ΄ν΄λ³΄κ² μ΅λλ€:
- μκ° λ³΅μ‘λ: O(n*K)
function maxSalesNaive(sales, K) {
let maxSales = 0;
for (let i = 0; i <= sales.length - K; i++) {
let windowSum = 0;
for (let j = i; j < i + K; j++) {
windowSum += sales[j];
}
maxSales = Math.max(maxSales, windowSum);
}
return maxSales;
}
ν΄λΉ λ°©λ²μ κ° λ¨κ³λ§λ€ μ²μλΆν° μλ‘ κ³μ°νκΈ° λλ¬Έμ μ λ ₯ ν¬κΈ°κ° μ¦κ°ν μλ‘ μ±λ₯μ΄ μ νλ κ°λ₯μ±μ΄ μμ΅λλ€.
μ¬λΌμ΄λ© μλμ° μ κ·Όλ²
- μκ° λ³΅μ‘λ: O(n)
function maxSalesSlidingWindow(sales, K) {
if (K > sales.length) return null;
let windowSum = 0;
for (let i = 0; i < K; i++) {
windowSum += sales[i];
}
let maxSales = windowSum;
for (let i = K; i < sales.length; i++) {
windowSum = windowSum - sales[i - K] + sales[i];
maxSales = Math.max(maxSales, windowSum);
}
return maxSales;
}
μ¬λΌμ΄λ© μλμ°μ μμ©
- λ¬Έμμ΄ μ²λ¦¬: κ°μ₯ κΈ΄ μ€λ³΅ μλ λΆλΆ λ¬Έμμ΄ μ°ΎκΈ°
- λ°°μ΄ μ²λ¦¬: νΉμ ν©μ κ°μ§ λΆλΆ λ°°μ΄ μ°ΎκΈ°
- λ°μ΄ν° μ€νΈλ¦¬λ°: μ€μκ° λ°μ΄ν°μ μ΄λ νκ· κ³μ°
- λ€νΈμν¬: TCPμ νλ¦ μ μ΄
λ°μν
'π’ Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Javascript][Programmers] μ€νμ±ν λ°© (0) | 2024.09.30 |
---|---|
[Javascript][Programmers] ν μΈ νμ¬ (4) | 2024.09.27 |
[Javascript][Programmers] μμ£Όνμ§ λͺ»ν μ μ (0) | 2024.09.23 |
[Javascript] λ¬Έμμ΄ ν΄μ±μ μ΄μ©ν κ²μ ν¨μ λ§λ€κΈ° (0) | 2024.09.23 |
[Javascript] λ κ°μ μλ‘ νΉμ κ° λ§λ€κΈ° (1) | 2024.09.10 |