방법1 :
최빈값을 카운트 하기 위해 map<int, int> 자료구조를 활용.
#include <bits/stdc++.h>
using namespace std;
int s, avg, maxret, maxcnt = -1;
map<int, int> m;
int main(){
for(int i = 0; i < 10; i++){
int input = 0;
cin >> input;
s += input;
if(m.find(input) != m.end()){
m[input]++;
}
else{
m.insert({input, 1});
}
}
for(auto t : m){
if(t.second > maxcnt){
maxcnt = t.second;
maxret = t.first;
}
}
avg = s / 10;
cout << avg << "\n" << maxret;
}
방법2 :
배열을 활용하여 풀 수도 있었다.
#include <bits/stdc++.h>
using namespace std;
int s, maxret, maxcnt = -1;
int main(){
int input = 0;
int counter[100] = {};
for(int i = 0; i < 10; i++){
cin >> input;
s+=input;
counter[input / 10]++;
}
for(int i = 1; i < 100; i++){
if(counter[i] > maxcnt){
maxcnt = counter[i];
maxret = i;
}
}
cout << s / 10 << "\n" << maxret * 10;
}