정수 배열이 주어졌을 때, 왼쪽과 오른쪽의 합이 같은 값이 되는 위치를 찾으시오.
즉, A라는 배열이 있다면 A[0] + … + A[i - 1]과 A[i + 1] + … + A[n]이 같은 값이 되는 i의 위치가 답이 됩니다.
만약 A[1] + … + A[n]이 0이라면 0도 답이 됩니다.
[0, -3, 5, -4, -2, 3, 1, 0]
[0, 3, 7]
int findPivots(int in[], int out[], int n) {
int sum, sumLeft, sumRight, i, j;
for (i = 0, sum = 0; i < n; i++) {
sum += in[i];
out[i] = -1;
}
for (i = 0, sumLeft = 0, sumRight = sum, j = 0; i < n; i++) {
sumLeft += in[i];
sumRight -= in[i];
if (sumLeft == sumRight) {
out[j++] = i;
}
}
return j;
}