https://school.programmers.co.kr/learn/courses/30/lessons/120812
찾아보고 한건데 map에 저장하면서 중복될경우 value를 ++한다.
다 넣은 뒤 최빈값을 탐색해가다가 여러개일경우 -1을 리턴한다.
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
int solution(vector<int> array) {
int answer = 0;
int maxV = 0;
unordered_map<int,int> um;
for(const auto v : array)
{
um[v]++;
}
for(const auto& v : um)
{
if(v.second > maxV)
{
maxV = v.second;
answer = v.first;
}
else if(v.second == maxV)
{
answer = -1;
}
}
return answer;
}
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
int solution(vector<int> array) {
int answer = 0;
int maxV = 0;
unordered_map<int,int> um;
for(const auto v : array)
{
um[v]++;
}
for(const auto& v : um)
{
if(v.second > maxV)
{
maxV = v.second;
answer = v.first;
}
else if(v.second == maxV)
{
answer = -1;
}
}
return answer;
}
같은 풀이이다.