강의

멘토링

로드맵

Inflearn brand logo image

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

rookie21님의 프로필 이미지
rookie21

작성한 질문수

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

3. 최대 매출(Sliding window)

루프에서 i 값 범위 질문

작성

·

82

0

public int solution(int N, int K, int[] arr){

    int sum = 0;
    int answer = 0;

    for (int i = 0 ; i < K; i++){
        sum += arr[i];
        answer = sum;
    }

    for (int i = K; i <= N-K; i++){
        sum += arr[i] - arr[i-K];

        if (sum > answer){
            answer = sum;
        }
    }

    return answer;



}

강의에서는 i 의 범위를 i = k ; i < n; 으로 놓았으나,
i = k ; i <= n-k ; 로 두고 제출을 하니 정답이 나왔습니다.

왜 정답이 나왔는지 모르겠습니다. 인덱스 i 는 슬라이딩 윈도우의 마지막 위치나 다름이 없는데, 배열의 마지막 인덱스인 n-1 까지 도달해야함이 분명합니다. 그러나, i 가 n-k 까지 가게 되면 i 가 n-1 까지 도달을 못하게 됩니다.

 

답변 1

1

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

안녕하세요^^

채점사이트의 테스트케이스가 적어서 맨 끝부분이 최대값이 되는 경우가 없어서 그냥 통과된 것 같습니다.

만약 아래와 같은 케이스가 있다면 통과되지 않을 코드입니다.

10 3

100 15 11 20 25 10 20 50 90 100

 

rookie21님의 프로필 이미지
rookie21
질문자

답변 감사드립니다!

rookie21님의 프로필 이미지
rookie21

작성한 질문수

질문하기