Practice Coding/Codility

[Lesson 1] - 3. TapeEquilibrium

프로그래머 2015. 6. 8. 01:57

문제 : |(A[0] + ... + A[P-1]) - (A[P] + ... + A[N-1])|의 최소값 구하기!

접근방법 : 처음에 for문 여러번 돌렸다가 피를 본 후... 다르게 생각하기 위해서 노력했는데, 

                전체 합계를 먼저 계산한 후, 그 계산된 값에서 현재까지 누적된 P의 값을 뺀 값이 가장 최소값인지 비교한 후 저장하는 방식으로 해결했다.

사용언어 : Javascript

소스 :

// you can use console.log for debugging purposes, i.e.
// console.log('this is a debug message');

function solution(A) {
    // write your code in JavaScript (Node.js 0.12)
    var N = A.length;
    var sum = 0, min = 0;
    var first = 0, second = 0;
    
    for (var i = 0; i < N; i++) {
        sum+= A[i];
    }

    for (var p = 1; p < N; p++) {
        first += A[p-1];
        second = sum - first;
        var difference = Math.abs(first-second);
        if (p==1) min = difference;
        if (min > difference) min = difference;
    }
    return min;
}



득점 : 



'Practice Coding > Codility' 카테고리의 다른 글

[Lesson 2] - 2. FrogRiverOne  (1) 2015.06.11
[Lesson 2] - 1. PermCheck  (0) 2015.06.10
[Lesson 1] - 2. PermMissingElem  (0) 2015.06.08
[Lesson 1] - 1. FrogJmp  (0) 2015.06.08
Codility!!  (0) 2015.06.07