백준/정렬
백준 1546 c++ "평균" -PlusUltraCode-
PlusUltraCode
2024. 7. 30. 20:17
https://www.acmicpc.net/problem/1546
[필자 사고]
문제에서 요구하는대로 코드를 구현하면 쉽게 풀리는 문제이다.
1. 최대값을 찾고 현재 점수들에 최댓값을 나눈다.
2. 그 값들의 평균을 구한다.
조심할 점은 소숫점이 있기 때문에 float 아니면 double 을 사용해야 한다.
[소스 코드]
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
int N;
vector<float> arr;
float avg = 0;
float maxNum = -1;
void Input() {
cin >> N;
arr.resize(N);
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
maxNum = *max_element(arr.begin(), arr.end());
for (int i = 0; i < N; i++) {
float nowNum = arr[i];
arr[i] = nowNum / maxNum * 100.0;
}
}
void calculator() {
for (int i = 0; i < N; i++) {
avg += arr[i] / N;
}
}
int main(void) {
Input();
calculator();
cout << avg;
}