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;
}
'백준 > 정렬' 카테고리의 다른 글
백준 1202 C++ "보석 도둑" -PlusUltraCode- (1) | 2024.11.14 |
---|---|
백준 10986 c++ "나머지 합" -PlusUltraCode- (0) | 2024.08.02 |
백준 11659 c++ "구간 합 구하기 4" -PlusUltraCode- (0) | 2024.08.01 |
백준 11720 c++ "숫자의 합" -PlusUltraCode- (0) | 2024.07.30 |
백준 2751 c++ "수 정렬하기 2" -PlusUltraCode- (0) | 2024.07.30 |