본문 바로가기
TechNical/JAVA

[codility] PermMissingElem

by 강멍멍이 2018. 1. 12.
반응형

Q. 1부터 순차적으로 올라가는 순서 무작위 배열 값 중에서 연속되지 않고 빠진 숫자를 찾으세요.

    A = {2, 3, 1, 5}

A. 4

 

값이 1씩 올라가므로 전체 합을 구하는 공식으로 원래 나와야 할 총계를 구한 다음에

실제 값을 구해서 차이를 구하면 어떤 값이 빠졌는지 알 수 있다. 

 

public int solution(int[] A) {
    long actVal = A.length * (A.length + 1) / 2;
    long sumVal = 0;
    for(int i : A){
        sumVal = sumVal + i;            
    }
    return (int)((A.length + 1) - (sumVal - actVal));

 

eclipse에서 실행하면 100,000 자리까지 가도 정상적으로 잡아 내는데,

codility에서 제출해서 걔들이 돌린거 보면 오류가 났다고 한다. 왜 그런지 모르겠다.. -.-

 

[100,000자리 만들어 내기]

int[] A = new int[100000];

for(int i = 0 ; i < 100000 ; i++){

A[i] = i + 1;

}

A[10] = 100001;

 

반응형

댓글