공부/BAEKJOON

[C++] 백준 1546: 평균

knhoo 2025. 1. 11. 12:57
728x90

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

문제


세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.

예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.

세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.

 

정리


1. 최고 점수를 구한다.

2. 입력받은 성적의 합계를 구한다.

3. (합계 / 최고점수 * 100 / 과목 개수)를 계산하여 평균 점수를 구한다.

 

제출 코드


#include<iostream>
using namespace std;

int N; //과목의 개수
int score; //현재 성적
int M;//최고점

void Max(int arr[]) {
	M = arr[0];
	for (int i = 1; i < N; i++) {
		if (arr[i] > M)
			M = arr[i];
	}
}


int main() {
	cin >> N;
	int* arr = new int[N];

	for (int i = 0; i < N; i++) {
		cin >> arr[i];
	}

	Max(arr);//최고점 구하기

	double sum = 0;
	for (int i = 0; i < N; i++) {
		sum += arr[i];
	}

	double result = sum / M * 100.0 / N;
	cout << result << endl;

	return 0;
}

 

 

728x90