codility Lesson 풀어보기 3

Coding Test 준비/codility 2022. 6. 29. 21:30

Codiliy Lesson 풀어보기 Day3.

 - 아직은 Easy 위주로 진행.

 

Codility Lesson 3. Time Complexity - TapeEquilibrium

public int solution(int[] A) {
    // write your code in Java SE 8
    int minNum = Integer.MAX_VALUE;
    int totalSum = 0, leftSum=0;

    for(int i : A)
        totalSum += i;

    for(int i=0; i<A.length-1; i++){
        leftSum += A[i];
        minNum = Math.min(minNum, Math.abs(leftSum - (totalSum-leftSum)));
    }

    return minNum;
}

 - for문 내에서 합계를 매번 구하도록 하면 타임아웃이 난다.

Detected time complexity :O(N)

 

https://app.codility.com/demo/results/trainingA9H573-HVU/

 

Test results - Codility

A non-empty array A consisting of N integers is given. Array A represents numbers on a tape. Any integer P, such that 0 < P < N, splits this tape into two non-empty parts: A[0], A[1], ..., A[P − 1] and A[P], A[P + 1], ..., A[N − 1]. The difference betw

app.codility.com

 

Codility Lesson 4. Counting Elements - FrogRiverOne

public int solution(int X, int[] A) {
    // write your code in Java SE 8
    int[] chkList = new int[X+1];
    for(int i=0, cnt=0; i<A.length; i++) {
        if(chkList[A[i]] != 1 && A[i]<= X){
            chkList[A[i]] = 1;
            cnt++;
        }
        if(cnt == X) return i;
    }
    return -1;
}

 - 모든 배열을 비교할 필요는 없고, X 까지 값 채워지는 순간까지만 비교하면 OK

 

https://app.codility.com/demo/results/trainingFU38QE-6B6/

'Coding Test 준비 > codility' 카테고리의 다른 글

codility Lesson 풀어보기 6  (0) 2022.08.20
codility Lesson 풀어보기 5  (0) 2022.08.15
codility Lesson 풀어보기 4  (0) 2022.08.06
codility Lesson 풀어보기 2  (0) 2022.06.26
codility Lesson 풀어보기  (0) 2022.06.19