본문 바로가기

Algorithm/문제풀이

Codility Lesson6 - Distinct

🔍 문제


 

 

Distinct coding task - Learn to Code - Codility

Compute number of distinct values in an array.

app.codility.com

 

✏️ 풀이 - JS


 

배열 A에서 순수 값(중복X)이 총 몇 개인지 구하는 문제이다. 먼저 배열을 오름차순으로 정렬한다. 그리고나서 current 변수에 현재 보고있는 값을 넣어주고, current와 값이 다른 값이 나왔다면 cnt(최종 return할 값)에 +1을 해주고, current값도 달라진 값으로 변경해준다. 그렇게 배열을 순회해가면서 값의 갯수를 찾아준다.

시간 복잡도는 O(N*log(N)) of O(N), 정확도와 효율성 모두 100%가 나왔다.

function solution(A) {
    //빈 배열일 경우
    if(A.length === 0) return 0;

    A.sort((a, b) => {return a-b});
    let current = A[0];
    let cnt = 1;
    for(let i = 1; i < A.length; i++) {
        if(A[i] !== current) {
            cnt++;
            current = A[i];
        }
    }

    return cnt;
}

'Algorithm > 문제풀이' 카테고리의 다른 글

Codility Lesson6 - NumberOfDiscIntersections  (0) 2019.08.11
Codility Lesson6 - Triangle  (0) 2019.08.10
Codility Lesson6 - MaxProductOfThree  (0) 2019.08.09
Codility Lesson5 - CountDiv  (0) 2019.08.08
Codility Lesson5 - MinAvgTwoSlice  (0) 2019.08.08