< 알아야하는 개념 >

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

+ Recent posts