n개의 요소가 있는 배열 A가 있다고 가정합니다. 그리고 n은 짝수입니다. 배열의 균형을 유지하는 데 필요한 값을 찾아야 합니다. 배열의 크기가 짝수이므로 두 개의 반을 만들 수 있습니다. 왼쪽 절반의 합과 오른쪽 절반의 합이 균형을 이루어야 합니다. 따라서 배열이 A =[1, 2, 3, 2, 5, 3]인 경우 왼쪽 절반의 합은 6이고 오른쪽 절반의 합은 10입니다. 따라서 배열의 균형을 맞추려면 4가 필요합니다.
작업은 간단합니다. 전반부와 후반부의 합을 찾은 다음 절대 차이를 찾아 반환합니다.
예시
#include<iostream>
#include<cmath>
using namespace std;
int getValueToBalance(int a[], int n) {
int left_sum = 0;
for (int i = 0; i < n/2; i++)
left_sum += a[i];
int right_sum = 0;
for (int i = n/2; i < n; i++)
right_sum += a[i];
return abs(left_sum - right_sum);
}
int main() {
int arr[] = {1, 2, 3, 2, 5, 3};
int n = sizeof(arr)/sizeof(arr[0]);
cout << "The number for balancing: " << getValueToBalance(arr, n);
} 출력
The number for balancing: 4