(C++) 백준 1546번 - 평균

코딩너구리·2025년 10월 1일

코딩 문제 풀이

목록 보기
10/266

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

문제

> 시험을 망친 세준이가 점수를 조작한다.
> 가장 높은 점수를 M이라고 한다면 각각 점수/M * 100으로 조작한다.
> 조작한 점수들의 평균을 구해라.

접근

점수를 입력받으면서 각 점수를 비교해 최대점수를 먼저 구한다.
주어진 수식을 구현해 점수를 넣어 새로 성적표를 만들고 평균을 구해 출력한다.

문제해결

> N을 입력받고 실수형 벡터 score에 N만큼 값을 입력받는다.
> N만큼 반복하며 -1로 선언한 max값과 비교해 가장 큰 점수를 max 값에 담는다.
> 또 N만큼 반복하며 수식에 점수를 넣어 계산하고 총합을 구한다.
> 평균을 출력한다.

코드

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	int N;
	cin >> N;
	int max = -1;
	float sum = 0;
	vector<float> score(N);
	for (int i = 0; i < N; i++)
	{
		cin >> score[i];
		if (score[i] > max)
			max = score[i];
	}

	for (int i = 0; i < N; i++)
	{
		score[i] = score[i] / max * 100;
		sum += score[i];
	}
	cout << sum / N << '\n';
}

후기
높은 점수도 수식에 적용해 100점으로 만들어야 제대로 결과가 나온다. 조작이 과한것 같다.

0개의 댓글