[Algorithm] Codility_TapeEquilibrium in Java

하이초·2024년 3월 10일
0

Algorithm

목록 보기
84/94
post-thumbnail

💡 Codility Easy_TapeEquilibrium:

배열을 이분할하여 두 구역의 차이가 가장 적은 경우 구하기

🌱 코드 in Java

알고리즘: Sliding window

import java.util.*;

class Solution {
    public int solution(int[] A) {
        int len = A.length;
        int first = 0, ans = 2147483647;
        int second = Arrays.stream(A).sum(); // 배열 전체 합 구하기

        for (int i = 0; i < len - 1; i++) {
            first += A[i]; // 첫번째 구역
            second -= A[i]; // 배열 전체 합에서 첫번째 구역 빼기
            ans = getMin(first - second, ans); // 절대값 차 및 최소값 찾기
        }
        return ans;
    }

    public int getMin(int a, int b) {
        a = a > 0 ? a : a * -1;
        return a < b ? a : b;
    }
}

하루에 한 문제는 풀겠다는 일념으로.. 또 easy...
아무튼! 문제를 보고 sliding window 방식이 떠올라서 그렇게 풀었다..
딱히 쓸 말이...


🧠 기억하자

  1. 열심히 하자
profile
개발국대가 되는 그 날까지. 지금은 개발 응애.

0개의 댓글