콘솔창 & 윈도우창/코딩 테스트
프로그래머스 LV.1 폰켓몬
뽀또치즈맛
2024. 8. 17. 15:22
map 이용
int solution(vector<int> nums)
{
int answer = 0;
int half = nums.size() / 2;
set<int> s(nums.begin(), nums.end());
int kind = s.size();
if (half < kind) answer = half;
else answer = kind;
return answer;
}
vector 이용
#include <vector>
#include <set>
#include <iostream>
#include <algorithm>
using namespace std;
int solution(vector<int> nums)
{
int answer = 0;
int half = nums.size() / 2;
vector<int> types = nums;
sort(types.begin(), types.end());
types.erase(unique(types.begin(), types.end()), types.end());
int kind = types.size();
if (half < kind) answer = half;
else answer = kind;
return answer;
}
만약 모든 n마리의 포켄몬이 다른 종류의 포켓몬이라면,
답은 n/2가 된다.
한편 종류가 하나라면 답은 1이 된다.
이것을 바탕으로 n/2와 종류의 개수 중 더 적은 수가 답이되는 것을 알 수 있다.