티스토리 뷰

Algorithm/Codility

Codility -5 PermMissingElem

GrapeMilk 2020. 3. 5. 10:37

( https://app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/ )

 

Find the missing element in a given permutation.

 

내풀이

 - 일반적인 테스트는 통과했지만,

 - 세부적인 테스트에서 에러가 많이 발생. 

 - 앞으로 문제 풀 때는, 0이나 single number처리에 주의해야 한다.

    
    
    public static int solution(int[] A) {
        int answer = 0;
        Arrays.sort(A);
        for (int i = 0; i < A.length; i++){
            if (A[i] != i + 1){
                answer = i + 1;
            }
        }
        return answer;
    }

 

베스트 코드

 - 숫자의 총 합과, 배열에 담겨있는 값의 합을 뺀 후 missing number를 찾는 방법.

 

    public static int solution(int[] data)  {
        
        long N = data.length + 1;
        long total = (N * (N + 1)) / 2;
        long sum = 0;
        for(int i : data) {
            sum += i;
        }
        
        return (int)(total - sum);
    }

 

'Algorithm > Codility' 카테고리의 다른 글

Codility -6 TapeEquilibrium(Java)  (0) 2020.03.05
Codility -4 FrogJmp  (0) 2020.03.04
Codility -3 OddOccurrencesInArray(Java)  (0) 2020.03.04
Codility -2 CyclicRotation(Java)  (0) 2020.03.04
Codility -1 Binary gap(Java)  (0) 2020.03.03
댓글