해커랭크(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 |
반응형