• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

런타임 에러

21.07.21 13:58 작성 조회수 136

0

인텔리제이에서는 에러가 안뜨는데 채점 사이트에서는 런타임 에러가 발생합니다...

뭐가 문제인가요?

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int k = sc.nextInt();

        int[] arr = new int[n];

        for(int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }

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

        for(int i = 3; i < n - k; i++) {
            sum += (arr[i] - arr[i-k]);
            result = Math.max(result, sum);
        }

        System.out.print(result);
    }
}

답변 1

답변을 작성해보세요.

0

안녕하세요^^

k가 항상 3으로 고정되는 숫자가 아닙니다. 문제에 있는 입력예가 된다고 다 되는게 아닙니다. 스스로 여러 입력을 만들어 테스트해보세요.

for(int i = 3; i < n - k; i++) {

            sum += (arr[i] - arr[i-k]);

            result = Math.max(result, sum);

        }

위에 for문에서 k가 100이라고 하면 arr[i-k] 에서 arr[3-100]인 arr[-97]인덱스를 참조하게 됩니다.

index out of range 에러가 납니다.