강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

shut up and squat님의 프로필 이미지
shut up and squat

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 최대 매출(Sliding Window)

제가 짠 코드 질문드립니다.

작성

·

230

0

처음에 2중반복으로 풀고 강사님이 풀이해주실때 뜨끔하고 풀어본 코드입니다. 투포인터로 풀어봤는데 혹시 문제가 될만한 사항 있을까요...?

function solution(arr, k) {
    let answer = Number.MIN_SAFE_INTEGER, sum = 0, lt = 0;

    for (let rt = 0; rt < arr.length; rt++) {
        sum += arr[rt];
        if (rt === k) {
            sum -= arr[lt++];
            k++;
        }

        answer = Math.max(sum, answer);
    }

    return answer;
}

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

퀴즈

투 포인터 또는 슬라이딩 윈도우 기법이 중첩 반복문보다 효율적인 주된 이유는 무엇일까요?

더 적은 메모리를 사용해서일까요?

코드가 더 짧아져서일까요?

대부분의 경우 O(N) 시간 복잡도를 달성해서일까요?

입력 데이터 크기에 영향을 받지 않아서일까요?

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네. 잘 하신 코드입니다.

shut up and squat님의 프로필 이미지
shut up and squat

작성한 질문수

질문하기