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