풀이과정
answer 초기 값을 nums.size() / 2로 하고,
만약 중복을 제거한 값이 초기 사이즈의 반보다 작다면 다시 answer값을 변경하였다.
풀이1
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> nums)
{
int answer = nums.size() / 2;
sort(nums.begin(), nums.end());
nums.erase(unique(nums.begin(), nums.end()), nums.end());
if(nums.size() < answer){
answer = nums.size();
}
return answer;
}
풀이2
#include <vector>
using namespace std;
int solution(vector<int> nums)
{
int answer = nums.size() / 2;
// sort 함수 오름차순 구현
for(int i = 0; i < nums.size(); i++){
for(int j = 0; j < nums.size(); j++){
if(nums[i] < nums[j]){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
// erase 함수 구현
int n = 1;
int temp[10001];
temp[0] = nums[0];
for(int i = 1; i < nums.size(); i++){
if(nums[i] != temp[n - 1]){
temp[n++] = nums[i];
}
}
vector<int> v;
for(int i = 0; i < n; i++){
v.push_back(temp[i]);
}
if(v.size() < answer){
answer = v.size();
}
return answer;
}
'🍞 Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스][Level1] 핸드폰 번호 가리기 c++ (0) | 2022.09.03 |
---|---|
[프로그래머스][Level1] 하샤드 수 c++ (0) | 2022.09.03 |
[프로그래머스][Level1] 평균 구하기 c++ (0) | 2022.09.03 |
[프로그래머스][Level1] 콜라츠 추측 c++ (0) | 2022.09.03 |
[프로그래머스][Level1] 최대공약수와 최소공배수 c++ (0) | 2022.09.03 |