이 문제에서는 n개의 정수 값으로 구성된 배열 arr[]이 제공됩니다. 우리의 임무는 배열의 평형 지수를 찾는 프로그램을 만드는 것입니다.
균형 지수 인덱스 앞의 모든 요소의 합이 인덱스 뒤의 모든 요소의 합과 같은 인덱스입니다.
크기가 n인 배열 arr[]의 경우 평형 지수는 다음과 같은 e입니다.
합계(arr[0… e-1] ) =합(arr[e… n-1])
문제를 이해하기 위해 예를 들어 보겠습니다.
입력: arr[] ={5, 1, 2, 8, 3, 4, 1}
출력: 3
설명:
arr[0] + arr[1] + arr[2] =arr[4] + arr[5] + arr[6]
=> 5 + 1 + 2 =3 + 4 + 1
=> 8 =8
해결 방법:
간단한 접근 방식은 배열의 모든 요소가 평형 수일 수 있는 날씨를 지속적으로 확인하여 요소를 찾는 것입니다.
이를 위해 우리는 중첩 루프를 사용할 것입니다. 배열 요소의 요소를 반복할 외부입니다. 그리고 내부는 배열의 어떤 요소가 평형수를 만들 수 있는지 여부를 확인합니다.
우리 솔루션의 작동을 설명하는 프로그램,
예
#include <bits/stdc++.h> using namespace std; int findEquilibriumIndex(int arr[], int n) { int prevSum, nextSum; for (int i = 0; i < n; ++i) { prevSum = 0; for (int j = 0; j < i; j++) prevSum += arr[j]; nextSum = 0; for (int j = i + 1; j < n; j++) nextSum += arr[j]; if (prevSum == nextSum) return i; } return -1; } int main() { int arr[] = {5, 1, 2, 8, 3, 4, 1}; int n = sizeof(arr) / sizeof(arr[0]); cout<<"The equilibrium index is "<<findEquilibriumIndex(arr, n); return 0; }
출력 -
The equilibrium index is 3