본문 바로가기
알고리즘/JAVA

3. 최대 매출

by vivi 2021. 9. 15.
import java.util.*;

class Main {
	public int solution(int[] input, int N) {
		int answer = 0;
		int index = 0;
		int max = Integer.MIN_VALUE;
		while (index <= input.length - N) {
			int sum = 0;
			for (int i = 0; i < N; i++) {
				sum += input[index + i];
			}
			max = Math.max(max, sum);
			index++;
		}
		answer = max;
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		int M = kb.nextInt();
		int N = kb.nextInt();
		int[] input = new int[M];
		for (int i = 0; i < M; i++)
			input[i] = kb.nextInt();
		System.out.print(T.solution(input, N));
		kb.close();
	}

}

4번째 테스트 케이스 시간 초과

 

import java.util.*;

class Main {
	public int solution(int[] input, int N) {
		int answer = 0;
		int index = 0;
		int sum = 0;
		for (int i = 0; i < N; i++) {
			sum += input[i];
		}
		int max = sum;
		while (index < input.length - N) {
			sum = sum - input[index] + input[index + N];
			max = Math.max(max, sum);
			index++;
		}
		answer = max;
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		int M = kb.nextInt();
		int N = kb.nextInt();
		int[] input = new int[M];
		for (int i = 0; i < M; i++)
			input[i] = kb.nextInt();
		System.out.print(T.solution(input, N));
		kb.close();
	}

}

'알고리즘 > JAVA' 카테고리의 다른 글

5. 연속된 자연수의 합  (0) 2021.09.16
4. 연속 부분수열  (0) 2021.09.16
2. 공통원소 구하기  (0) 2021.09.15
12. 멘토링  (0) 2021.09.14
11. 임시반장 정하기  (0) 2021.09.11

댓글