BaekJoon
2108번 통계학
GamJia
2023. 4. 3. 09:08
단계별로 풀어보기 - 정렬 - 4단계
https://www.acmicpc.net/problem/2108
#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
int N;
vector<int> arr;
int check[8001];
double average()
{
double sum=0;
for(int i=0;i<N;i++)
{
sum+=arr[i];
}
return round(sum/N);
}
int median()
{
return arr[N/2];
}
int mode()
{
int count=0;
int result=0;
for(int i=0;i<8001;i++)
{
if(count<check[i])
{
count=check[i];
result=i;
}
}
for(int i=result+1;i<8001;i++)
{
if(count==check[i])
{
result=i;
break;
}
}
return result-4000;
}
int range()
{
return arr[N-1]-arr[0];
}
int main()
{
cin>>N;
for(int i=0;i<N;i++)
{
int temp;
cin>>temp;
arr.push_back(temp);
check[temp+ 4000]++;
}
sort(arr.begin(),arr.end());
cout<<average()<<"\n";
cout<<median()<<"\n";
cout<<mode()<<"\n";
cout<<range();
return 0;
}