[λ°±μ€] 2108λ² - ν΅κ³ν (C++)

https://www.acmicpc.net/problem/2108
λ¬Έμ
μλ₯Ό μ²λ¦¬νλ κ²μ ν΅κ³νμμ μλΉν μ€μν μΌμ΄λ€. ν΅κ³νμμ Nκ°μ μλ₯Ό λννλ κΈ°λ³Έ ν΅κ³κ°μλ λ€μκ³Ό κ°μ κ²λ€μ΄ μλ€. λ¨, Nμ νμλΌκ³ κ°μ νμ.
- μ°μ νκ· : Nκ°μ μλ€μ ν©μ NμΌλ‘ λλ κ°
- μ€μκ° : Nκ°μ μλ€μ μ¦κ°νλ μμλ‘ λμ΄νμ κ²½μ° κ·Έ μ€μμ μμΉνλ κ°
- μ΅λΉκ° : Nκ°μ μλ€ μ€ κ°μ₯ λ§μ΄ λνλλ κ°
- λ²μ : Nκ°μ μλ€ μ€ μ΅λκ°κ³Ό μ΅μκ°μ μ°¨μ΄
Nκ°μ μκ° μ£Όμ΄μ‘μ λ, λ€ κ°μ§ κΈ°λ³Έ ν΅κ³κ°μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ μμ κ°μ N(1 β€ N β€ 500,000)μ΄ μ£Όμ΄μ§λ€. λ¨, Nμ νμμ΄λ€. κ·Έ λ€μ Nκ°μ μ€μλ μ μλ€μ΄ μ£Όμ΄μ§λ€. μ λ ₯λλ μ μμ μ λκ°μ 4,000μ λμ§ μλλ€.
μΆλ ₯
첫째 μ€μλ μ°μ νκ· μ μΆλ ₯νλ€. μμμ μ΄ν 첫째 μ리μμ λ°μ¬λ¦Όν κ°μ μΆλ ₯νλ€.
λμ§Έ μ€μλ μ€μκ°μ μΆλ ₯νλ€.
μ μ§Έ μ€μλ μ΅λΉκ°μ μΆλ ₯νλ€. μ¬λ¬ κ° μμ λμλ μ΅λΉκ° μ€ λ λ²μ§Έλ‘ μμ κ°μ μΆλ ₯νλ€.
λ·μ§Έ μ€μλ λ²μλ₯Ό μΆλ ₯νλ€.

νμ΄κ³Όμ
ν΄λΉ λ¬Έμ μμ μꡬνλ κ²°κ³Όκ°μ΄ λ§λ€λ³΄λ κΌΌκΌΌνκ² λ¬Έμ λ₯Ό λ³Όνμκ° μμλ€.
λ¬Έμ μ λν μ€λͺ μ μ λλ‘ μ΄ν΄νμ§λͺ»νμ¬ μ°μ νκ· μμ λ¬Έμ κ° μ‘΄μ¬νμμλ€.
code
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <map>
using namespace std;
int findMostFrequent(const vector<int>& vec) {
map<int, int> m;
for(int num : vec) {
m[num]++;
}
int maxFrequent = 0;
for(const auto& [num, count] : m) {
maxFrequent = max(maxFrequent, count);
}
vector<int> mostFrequent;
for(const auto& [num, count] : m) {
if (maxFrequent == count) {
mostFrequent.push_back(num);
}
}
sort(mostFrequent.begin(), mostFrequent.end());
if (mostFrequent.size() >= 2) {
return mostFrequent[1];
}
return mostFrequent[0];
}
int range(const vector<int>& vec) {
int maxVal = *std::max_element(vec.begin(), vec.end());
int minVal = *std::min_element(vec.begin(), vec.end());
return maxVal - minVal;
}
int main() {
int n, x;
vector<int> vec;
double sum = 0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> x;
vec.push_back(x);
sum += x;
}
sort(vec.begin(), vec.end());
cout << static_cast<int>(round(sum / n)) << endl; // νκ· κ° λ°μ¬λ¦Ό
cout << vec[n / 2] << endl; // μ€μκ°
cout << findMostFrequent(vec) << endl; // μ΅λΉκ°
cout << range(vec) << endl; // λ²μ
return 0;
}
νκΈ°
μ΅λν κΉλνκ² νμ΄κ³Όμ μ λ§λ€κΈ°μν΄ λ Έλ ₯μ νμλ€.