
6-1. Distinct
Write a function
class Solution { public int solution(int[] 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].
다음과 같은 함수
Java
class Solution { public int solution(int[] A); }
AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.
가 주어졌을 때, N개의 정수로 구성된 배열 A가 주어지면, 배열 A에서 서로 다른 값의 개수를 반환하는 함수를 작성하세요.
예를 들어, 다음과 같이 6개의 요소로 구성된 배열 A가 주어졌을 때:
A[0] = 2 A[1] = 1 A[2] = 1
A[3] = 2 A[4] = 3 A[5] = 1
함수는 배열 A에 나타나는 서로 다른 값이 3개이므로 3을 반환해야 합니다. 즉, 1, 2, 3이라는 서로 다른 값이 배열 A에 나타납니다.
다음 가정을 위한 효율적인 알고리즘을 작성하세요:
N은 [0…100,000] 범위 내의 정수입니다.
배열 A의 각 요소는 [−1,000,000…1,000,000] 범위 내의 정수입니다.
문제풀이
import java.util.*;
class Solution {
public int solution(int[] A) {
HashSet<Integer> set = new HashSet<>();
for(int i = 0; i < A.length; i++){
set.add(A[i]);
}
return set.size();
}
}
제출결과

해쉬셋을 통해 같은 값은 1번만 저장하고 해당 해쉬셋의 사이즈를 리턴
문제풀어보기 -> https://app.codility.com/programmers/lessons/6-sorting/distinct/