Codility_Distinct

functionMan·2024년 8월 14일

Codility

목록 보기
15/32
post-thumbnail

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/

profile
functionMan

0개의 댓글