app.codility.com/programmers/lessons/3-time_complexity/
앞에서 부터 더한 누적값 배열을 만들고
뒤에서 부터 더한 누적값 배열을 만들어서
두 배열의 일정 위치의 값을 빼고 절대값으로 하여 작은 값을 구함
// 코딜리티 - TapeEquilibrium 문제
class TapeEquilibrium {
public int solution(int[] A) {
// write your code in Java SE 8
int length = A.length;
int[] frontStock = new int[length];
int[] backStock = new int[length];
for(int i = 1; i < length; i++) {
frontStock[i] = frontStock[i - 1] + A[i - 1];
}
backStock[length - 1] = A[length - 1];
for (int i = length - 2; i > 0; i--) {
backStock[i] = backStock[i + 1] + A[i];
}
int min = Integer.MAX_VALUE;
for (int i = 1; i < length; i++) {
min = Math.min(min, Math.abs(frontStock[i] - backStock[i]));
}
return min;
}
}
'코딩 테스트 > Codility' 카테고리의 다른 글
코딜리티 - PermMissingElem 문제 (자바) (0) | 2021.03.17 |
---|---|
코딜리티 - FlogJump 문제 (자바) (0) | 2021.03.17 |
코딜리티 - OddOccurrencesInArray 문제 (자바) (0) | 2021.03.17 |
코딜리티 - CyclicRotation 문제 (자바) (0) | 2021.03.17 |
코딜리티 - BinaryGap 문제 (자바) (0) | 2021.03.17 |