[codility] TapeEquilibrium

hamsteak·2023년 9월 20일
0

ps

목록 보기
15/39

주어진 리스트를 두 개로 분할했을 때, 각 리스트별 원소값 총합을 구하고 총합 차이가 가장 작을 때 그 차이가 얼마인지 구해야 하는 문제.

하나의 변수에는 0, 또 다른 변수에는 주어진 리스트 A의 총합을 대입해둔다. 그 후에 A를 순회하며 값을 넣고 빼고 비교하면서 최소 차이를 찾으면 된다.

https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/

cpp code

int solution(vector<int> &A) {
    int a=0, b=0;
    for (int i : A) {
        b += i;
    }
    int min_diff = 2001;
    for (int i=0; i<A.size()-1; i++) {
        a += A[i];
        b -= A[i];
        if (abs(b - a) < min_diff) {
            min_diff = abs(b - a);
        }
    }
    return min_diff;
}
profile
안녕하세요

0개의 댓글