본문 바로가기
백준/정렬

백준 1546 c++ "평균" -PlusUltraCode-

by PlusUltraCode 2024. 7. 30.

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;
}