< 알아야하는 개념 >
1. 절대값 함수
: stdlib 헤더에 있으며, abs ( value ) 를 하면 절대값을 출력해준다.
2. cout 으로 소수점 반올림 시키기
: cout.precision(0) 하면 정수 부분만 출력이 된다.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool compare(int a,int b){
return a < b;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n,temp,arr[8001]; // 음~양수 4000씩 = 8000
int mx = -1,mode,count = 0;
double sum = 0;
vector <int> vec,mode_vec;
for(int i=0; i<n; i++){
arr[i] = 0;
}
cin >> n;
for(int i=0; i<n; i++){
cin >> temp;
vec.push_back(temp);
sum += temp;
temp = (temp <= 0) ? abs(temp) : temp + 4000;
arr[temp]++;
if(arr[temp] > mx){
mx = arr[temp];
mode = temp;
}
}
sort(vec.begin(),vec.end(),compare);
for(int i=0; i<8001; i++){
if(arr[i] == mx){
mode = i;
mode = (mode<4000) ? -mode : mode-4000;
mode_vec.push_back(mode);
}
}
sort(vec.begin(),vec.end(),compare);
mode = (mode_vec.size() >= 2) ? mode_vec[1] : mode_vec[0];
double eve = sum/double(n);
cout.precision(0);
cout << eve << endl;
cout << vec[n/2] << endl;
cout << mode << endl;
cout << vec[vec.size()-1] - vec[0] << endl;
return 0;
}
'백준알고리즘' 카테고리의 다른 글
경사로 ( java ) (0) | 2022.10.12 |
---|---|
백준 10989 C++ (0) | 2021.07.17 |
백준 2751 C++ (0) | 2021.07.17 |
백준 1018 C++ (0) | 2021.07.16 |
백준 7568 C++ (0) | 2021.07.16 |