본문 바로가기
Self Dev./Codility

[Codility] MinAvgTwoSlice 100%

by 지구 2019. 9. 8.
주 1회 회사 동기들이랑 알고리즘 스터디를 진행하고 있다.
현재 진행하고 있는 스터디는 오프라인 코딩테스트로도 많이 활용하고 있는 Codility.
각자 풀고 자기가 푼 소스를 리뷰하는 형식인데, 뜻 깊고 보람도 있고 참으로 도움이 많이 된다 :)
뛰어나진 않지만 각 단원 별로 100% 만들기 위해 노력 중이고, 기록 및 공유하기 위해 글을 작성한다.

바로가기   >Codility   >MinAvgTwoSlice

 

문제 해석 : 배열을 두개의 그룹으로 잘랐을 때, 그룹의 평균값이 가장 작은 그룹의 가장 작은 '인덱스'를 리턴하는 문제

문제 풀이 : 배열을 2개, 3개씩 잘랐을 때의 평균을 구하고 .. 최소 인덱스를 리턴하도록 했다 '-';;

요고 핵심은 평균값을 사용하기 때문에 "double" 사용이 중요하다. 🌝

 

class Solution {
    public int solution(int[] A) {
        
        int min_index = 0; // 최종 리턴값
        double min = 9999; // 최대로 초기설정해야 for문에서 비교가능..
        
        /** 2개씩 평균내서 비교 */
        for (int i=0; i<A.length-1; i++) {
            double avg = (A[i]+A[i+1]) / 2.0; // 평균값
            if (min > avg) {
                min = avg; // 최소값
                min_index = i; // 최소값의 인덱스
            }
        }
        
        /** 3개씩 평균내서 비교 */
        for (int j=0; j<A.length-2; j++) {
            double avg = (A[j]+A[j+1]+A[j+2]) / 3.0; // 평균값
            if (min > avg) {
                min = avg; // 최소값
                min_index = j; // 최소값의 인덱스
            }
        }
        
        return min_index;
    }
}

 

 

반응형

'Self Dev. > Codility' 카테고리의 다른 글

[Codility] Distinct 100%  (0) 2019.09.08
[Codility] MaxProductOfThree 100%  (0) 2019.09.08
[Codility] PassingCars 100%  (0) 2019.09.08
[Codility] MissingInteger 100%  (0) 2019.09.08
[Codility] PermCheck 100%  (0) 2019.09.08

댓글