본문으로 바로가기

Description

배열 A가 N개의 정수로 구성된 경우 배열 A의 고유 값 수를 반환합니다.

that, given an array A consisting of N integers, returns the number of distinct values in array A.

For example, given array A consisting of six elements such that:

A[0] = 2 A[1] = 1 A[2] = 1 A[3] = 2 A[4] = 3 A[5] = 1

the function should return 3, because there are 3 distinct values appearing in array A, namely 1, 2 and 3.

Write an efficient algorithm for the following assumptions:

N is an integer within the range [0..100,000];each element of array A is an integer within the range [−1,000,000..1,000,000].

Solution 1. Using Set

public int solution(int[] A) {
    Set<Integer> set = new HashSet<>();
    for(int num : A){
        set.add(num);
    }
    return set.size();
}

Solution 2. Stream API

public int solution(int[] A) {
    return (int)Arrays.stream(A).distinct().count();
}

Reference

 

Distinct coding task - Learn to Code - Codility

Compute number of distinct values in an array.

app.codility.com