알고리즘/문자열, 정렬

[알고리즘] 최대 매출 with Java

VIPeveloper 2022. 3. 10. 22:00
728x90
반응형

포인터를 사용했다. 이게 될까? 했는데 되어서 너무 신기했다. 

오늘 배운 것

1. 문제 풀이

. 로직도 강사님과 동일해서 기분이 좋았다. 이것을 sliding window라고 부르기로 했다고 한다.

import java.util.Scanner;

public class Main {

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

    private static void solution(int m, int[] arr) {
        int max_num = -1, p1=0,p2=0,tmp_num=0;
        while(p1 < m){
            tmp_num += arr[p1++];
        }
        for (int i = m; i < arr.length ; i++) {
            if(max_num < tmp_num){
                max_num = tmp_num;
            }
            tmp_num += arr[p1++];
            tmp_num -= arr[p2++];
        }
        System.out.println(max_num);
    }
}
728x90
반응형