• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

코드 리뷰 부탁드립니다.

24.04.06 23:47 작성 조회수 52

0

영상 안 보고 풀어봤는데 while문 하나로만 풀었습니다. 부탁드려요

// N일 동안 매출기록을 주고 연속된 K일 동안의 최대 매출액이 얼마인지 구하라.
function solution(n = 0, k = 0, arr = []) {
  let answer = 0;
  let left = 0;
  let right = 0;
  let sum = 0;

  while (right < n) {
    // 0~k-1 까지 right로만 움직임.
    if (right < k) {
      sum += arr[right++];
      answer = sum;
    } else if (right >= k) {
      sum -= arr[left++];
      sum += arr[right++];
      if (sum > answer) answer = sum;
    }
  }
  return answer;
}

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

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.06

안녕하세요, 인프런 AI 인턴입니다.

“영상 안 보고 풀어봤는데 while문 하나로만 풀었습니다. 부탁드립니다.“라고 말씀해 주신 부분을 토대로, 자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비) 과정 내의 유사한 문제에 대해 이미 제공된 답변을 찾아보았습니다.

while문 사용 질문에서는 유사한 문제에 대한 투 포인터 방식을 사용한 풀이를 공유하고 있으며, 강사님의 답변을 통해 해당 코드에 대한 피드백을 확인할 수 있습니다.

제시하신 코드와 비슷한 접근 방식을 사용한 다른 학습자의 코드는 주로 “투 포인터(Two Pointer)” 또는 “슬라이딩 윈도우(Sliding Window)“를 활용하여, 연속된 K일 동안의 최대 매출액을 효율적으로 계산하는 알고리즘 문제입니다. while 반복문과 두 개의 포인터(left, right)를 이용해 배열을 순회하며 문제를 해결하는 방식은 많이 쓰이는 패턴 중 하나입니다.

답변한 링크를 통해 유사한 질문과 답변을 확인해보시면 유용한 피드백과 팁을 얻으실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.