강의

멘토링

커뮤니티

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

australialove19님의 프로필 이미지
australialove19

작성한 질문수

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

3. 최대 매출(Sliding window)

k값을 3으로 명시적으로 적어도 원래 오답인가요? ㅠㅠ

작성

·

244

0

import java.util.*;

public class Main {
	public int solution(int n, int m, int[] a) {
		int answer = 0, sum = 0;
//		int max = Integer.MIN_VALUE;
		for (int i = 0; i < 3; i++) {
			sum += a[i];
		}
		answer = sum;
		for(int i = m; i < n; i++) {
			sum += (a[i] - a[i-3]);
			answer = Math.max(answer, sum);
		}
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int m = scan.nextInt();
		int[] arr = new int[n];
		for (int i = 0; i < n; i++) {
			arr[i] = scan.nextInt();
		}
		System.out.println(T.solution(n, m, arr));

	}
}

답변 1

1

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

안녕하세요^^ 

3으로 고정하면  안됩니다.

답변 감사합니다 ! 제가 궁금했던 부분은 모든 문제들에서 변수로 적어줘야 하는지 궁금합니다.

해당 문제에서는 테스트 케이스가 3으로 돼 있어서 고정했는데, 3으로 한것이 오답의 원인이 되는지 궁금해요 ㅎㅎ

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

3으로 고정한게 오답의 원인입니다.  변수 m으로 해야 합니다. 테스트케이스의 값들은 변하는 숫자들입니다. 다른 테스트케이스에서는 m값이 5다 될 수도 있고, 10이 될 수도 있습니다.

australialove19님의 프로필 이미지
australialove19

작성한 질문수

질문하기