Codility Java TapeEquilibrium
업데이트:
문제
코드
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
int min = Integer.MAX_VALUE;
int sum = sum(A);
int subSum = 0;
for (int idx = 0; idx < A.length - 1; idx++) {
subSum += A[idx];
sum -= A[idx];
int difference = Math.abs(subSum - sum);
if (difference < min) {
min = difference;
}
}
return min;
}
private int sum(int[] A) {
int sum = 0;
for (int num : A) {
sum += num;
}
return sum;
}
}
설명
- 특정 index 기준으로 우측 합을 더하는 sum과 좌측 합을 더하는 subSum을 정의한다.
- 반복을 하면서 좌측 합과 우측 합의 차이를 구한다.
- 최소 값이 위의 차이보다 클 경우에, 차이 값을 최소 값으로 넣어준다.
- 주어진 문제의 결과를 반환한다.
결과
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기