[Codility Lessons] TapeEquilibrium(4/n)
[Lesson3] Time Complexity
TapeEquilibrium : Minimize the value |(A[0] + … + A[P-1]) - (A[P] + … + A[N-1])|.
Java Solution
import java.lang.Math;
class Solution {
public int solution(int[] A) {
int sum = 0;
// 전체 합을 구함
for(int i = 0; i < A.length; i++){
sum += A[i];
}
int p_sum = 0;
int n_sum = 0;
int min = 0;
// 하나씩 더한 값과 총합에서 하나씩 더한 값을 뺀 값의 차이로 작은 값을 구함
for(int i = 1; i < A.length; i++){
p_sum += A[i-1];
n_sum = sum - p_sum;
int diff = Math.abs(p_sum - n_sum);
if(i == 1){
min = diff;
}
if(diff < min){
min = diff;
}
}
return min;
}
}
PHP Solution
function solution($A) {
$sum = 0;
foreach($A as $value){
$sum += $value;
}
$p_sum = 0;
$n_sum = 0;
$min = 0;
for($i = 1; $i < count($A); $i++){
$p_sum += $A[$i-1];
$n_sum = $sum - $p_sum;
$diff = abs($p_sum - $n_sum);
if($i == 1){
$min = $diff;
}
if($diff < $min){
$min = $diff;
}
}
return $min;
}