문제
Write a function
int solution(vector<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].
풀이
벡터 A에서 나타나는 모든 정수의 가짓수를 출력하는 문제이다.
오름차순으로 정렬을 하고, 앞의 수와 다를 경우 카운트를 해주었다.
벡터가 빈 경우에는 0을 리턴해야 한다!
코드
더보기
#include <algorithm>
int solution(vector<int> &A) {
if (A.empty())
return 0;
int ans = 1;
sort(A.begin(), A.end());
for (int i = 1; i < A.size(); i++) {
if (A[i - 1] != A[i])
ans++;
}
return ans;
}
'Old > Codility' 카테고리의 다른 글
Codility - Max Product Of Three (0) | 2020.02.19 |
---|---|
Codility - Count Div // C++ (0) | 2020.02.19 |
Codility - Genomic Range Query // C++ (0) | 2020.02.18 |
Codility - Passing Cars // C++ (0) | 2020.02.06 |
Codility - Max Counters // C++ (0) | 2020.02.06 |