알고리즘 풀이/Codility

codility - MinAvgTwoSlice (Prefix Sums)

배게 2019. 12. 13. 02:33
728x90

수학적 지식이 필요한 문제, 


사실상 전형적 코테용 알고리즘은 아니라고봄.. 


물론 당연히 못풀었고 


수학적 지식을 활용한 풀이기법만 익히면 1분컷 가능한 문제 


(2,3개의 최소평균값의 첫번째 인덱스 구하기 문제)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    public int solution(int[] A) {
        // write your code in Java SE 8
 
        double minValue = (double) Integer.MAX_VALUE;
        int min = 0;
 
        for (int i = 0; i < A.length - 1; i++) {
            if (i < A.length - 2) {
                if ((double) (A[i] + A[i + 1+ A[i + 2]) / 3 < minValue) {
                    min = i;
                    minValue = (double) (A[i] + A[i + 1+ A[i + 2]) / 3;
                }
            }
 
            if ((double) (A[i] + A[i + 1]) / 2 < minValue) {
                min = i;
                minValue = (double) (A[i] + A[i + 1]) / 2;
            }
        }
 
        return min;
    }
cs