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와 종류의 개수 중 더 적은 수가 답이되는 것을 알 수 있다.
'콘솔창 & 윈도우창 > 코딩 테스트' 카테고리의 다른 글
프로그래머스 C++ Lv.2 퍼즐게임 (PCCP 기출문제 2번) (0) | 2024.09.24 |
---|---|
프로그래머스 - Lv.1 동영상 재생기 (0) | 2024.09.23 |
프로그래머스 - LV.1 [1차] 비밀지도 (0) | 2024.08.15 |
백준 6463 팩트 C++ (0) | 2024.05.29 |
프로그래머스 lv.2 H-Index (0) | 2024.04.18 |