Codility: TapeEquilibrium

이원희·2020년 11월 27일
0

📝 PS

목록 보기
11/65
post-thumbnail

O(N)으로 풀 수 있었다.
index를 기준으로 앞뒤를 나눠서 계산하는 문제이다.
기존의 배열에 해당 index까지의 누적합을 구했다.
누적합을 통해 index를 기준으로 앞과 뒤를 나눠 계산했다.

class Solution {
    public int solution(int[] A) {
        for(int index = 1; index < A.length; index++) {
            A[index] += A[index - 1];
        }

        int min = Integer.MAX_VALUE;
        for(int index = 1; index < A.length; index++) {
            int front = A[index - 1];
            int end = A[A.length - 1] - A[index - 1];
            int temp = Math.abs(front - end);

            if(min > temp) {
                min = temp;
            }
        }

        return min;
    }
}

0개의 댓글