❓❗ 최대 매출 : Sliding Window

frenchkebab·2021년 8월 22일
0
post-thumbnail


Solution 풀이 : Sliding Window

function solution(k, arr) {
  let answer,
    sum = 0;
  for (let i = 0; i < k; i++) sum += arr[i];
  answer = sum;
  for (let i = k; i < arr.length; i++) {
    sum += arr[i] - arr[i - k];
    answer = Math.max(answer, sum);
  }
  return answer;
}

let a = [12, 15, 11, 20, 25, 10, 20, 19, 13, 15];
console.log(solution(3, a));

그냥 i - k를 하면 되는 것을....


내 풀이 : Sliding Window에 어거지로 Two Pointers 넣음

function solution(k, arr) {
  let l = 0;
  let r = l + k;

  let temp = 0;
  for (let i = 0; i < k; i++) {
    temp += arr[i];
  }

  let answer = temp;
  while (r < arr.length) {
    temp = temp - arr[l++] + arr[r++];
    answer = Math.max(answer, temp);
  }
  return answer;
}

let a = [12, 15, 11, 20, 25, 10, 20, 19, 13, 15];
console.log(solution(3, a));

어거지로 변수두개 쓰니까 정신이 없다.
(근데 막상 쓰고보니 더 직관적으로 괜찮아 보이는 것 같기도 하다... 그냥 answer 선언위에 했으면 생각보다 괜찮은데...? 어..?)

profile
Blockchain Dev Journey

0개의 댓글