해커랭크(HackerRank)

Day 0: Mean, Median, and Mode

cepiloth 2018. 8. 19. 17:40
반응형


1. 문제


2. 알고리즘

키워드 - 구현


3. 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
 
 
int getMode(const vector<int> &array) {
    int mode = 0;
    int size = array.size();
    int count = 0, max = 0;
    vector<int> copy (array.size());
    copy = array;
    sort (copy.begin(), copy.end());  
    int current = 0;
    for(int i = 0;i < size;i++) {
       if (copy[i] == current) {
           count++;
       } else {
           count = 1;
           current = copy[i];
       }
       if (count > max) {
           max = count;
           mode = copy[i];
       }
     }
     return mode;
}
 
int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */   
    
    int n; cin >> n;
    
    vector<int> arr(n);
    for(int i=0; i<n; i ++
        cin >> arr[i];
    
    sort(arr.begin(), arr.end());
    
    int sum = 0;
    for(int i =0; i<n; i++)
        sum += arr[i];
    
    double mean = (double)sum / n;
    cout << mean << endl;
    
    double median = (double)(arr[n/2+ arr[n/2-1]) / 2;
    cout << median << endl;
    
    int mode = getMode(arr);
    cout << mode << endl;
    return 0;
}
cs


반응형