Strong Root

난이도 ★★☆☆


문제를 보시려면 여기를 클릭





문제 요약

 두 구간으로 쪼갰을 때, 구간별 합의 차가 가장 적은 곳 찾기





힌트

 구간별 합을 미리 구해놓아서 중첩for문 없애기





이하는 코드입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public int solution(int[] A) {
    int sum_fromFirst = 0;
    int sum_toLast = 0;
 
    for (int i = 0; i < A.length; i++) {
        sum_toLast += A[i];
    }
 
    int minDiff = Integer.MAX_VALUE;
 
    for (int p = 1; p < A.length; p++) {
        sum_fromFirst += A[p - 1];
        sum_toLast -= A[p - 1];
 
        int diff = Math.abs(sum_fromFirst - sum_toLast);
 
        if (diff < minDiff) {
            minDiff = diff;
        }
    }
 
    return minDiff;
}
cs