Dev.baelanche

[백준 6236] 용돈 관리 본문

Data Structure & Algorithm/PS - JAVA

[백준 6236] 용돈 관리

baelanche 2019. 5. 13. 21:15
반응형

문제 설명이 장황하지만 기타 레슨과 완전히 똑같은 문제이다.

입력값의 범위와 출력 패턴도 똑같아서 Ctrl + C, Ctrl + V 를 해도 된다;;

 

 

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int m = sc.nextInt();
        int a[] = new int[n];
        int left = 0;
        int right = 0;
        for(int i=0; i<n; i++) {
            a[i] = sc.nextInt();
            left = a[i] > left ? a[i] : left;
            right += a[i];
        }
        
        while(left <= right) {
            int mid = (left + right)/2;
            int sum = 0;
            int cnt = 0;
            for(int i=0; i<n; i++) {
                if(sum + a[i] > mid) {
                    sum = 0;
                    cnt++;
                }
                sum += a[i];
            }
            if(sum != 0) cnt++;
            if(cnt <= m) right = mid - 1;
            else left = mid + 1;
        }
        System.out.println(left);
    }
}
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 16434] 드래곤 앤 던전  (0) 2019.05.15
[백준 2110] 공유기 설치  (0) 2019.05.15
[백준 2343] 기타 레슨  (0) 2019.05.13
[백준 13015] 별 찍기 - 23  (0) 2019.05.13
[백준 10994] 별 찍기 - 19  (0) 2019.05.13
Comments