본문 바로가기
🥇Baekjoon Solutions/정렬

[C++] 백준 2108번: 통계학

by 코푸는 개발자 2021. 8. 19.
728x90

https://www.acmicpc.net/problem/2108

 

2108번: 통계학

첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.

www.acmicpc.net

 

풀이

각각의 단어에 맞는 식을 구현하였습니다.

#include <iostream>
#include <vector>
#include<cmath>
#include <algorithm>


using namespace std;

int coordinate[500001];
int cnt[8001];

int main() {
	vector<int>v;
	int N, k, total = 0;
	cin >> N;

	for (int i = 0; i < N; i++)
	{
		cin >> k;
		total += k;
		v.push_back(k);
		cnt[k + 4000]++;
	}

	sort(v.begin(), v.end());

	int flag;
	int max = 0;

	for (int i = 0; i < 8001; i++)
	{
		if (cnt[i] > max)
		{
			max = cnt[i];
			flag = i;
		}
	}

	for (int i = flag + 1; i < 8001; i++)
	{
		if (cnt[i] == max)
		{
			flag = i;
			break;
		}
	}

	
	cout << round(total / (1.0 * N)) << endl;
	cout << v[(N-1) / 2] << endl;
	cout << flag - 4000 << endl;
	cout << v[N - 1] - v[0];

	return 0;
}
728x90

'🥇Baekjoon Solutions > 정렬' 카테고리의 다른 글

[C++] 백준 1920번: 수 찾기  (0) 2021.09.24
[C++] 백준 1431번: 시리얼 번호  (0) 2021.08.19
[C++] 백준 1181번: 단어 정렬  (0) 2021.08.19

댓글