728x90
반응형

블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다.


문제 설명

  • 테스트 케이스 개수 C가 주어진다.
  • 각 테스트 케이스마다 학생의 수 N(1 <= N <= 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
  • 각 케이스 마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력

풀이 전략

  • 학생의 수가 1000이므로 최대 입력될 수 있는 배열의 개수는 1000개
  • 학생의 점수들을 입력 받아 평균을 구하고, 입력받은 점수가 평균점을 넘는다면 count를 증가
  • count/학생수로 비율을 구한다.
  • 소수점 셋째 자리까지 출력해야 하므로 cout.precision을 이용해 소수점 출력
  • cout.precision( n ): 정수부+소수부 n번째 자리까지 출력
  • cout << fixed
    cout.precision( n ) : 소수부 n번째 자리까지 출력

소스 코드

#include <iostream>

using namespace std;
int main()
{
	int n;
	cin >> n;

	for (int i = 0; i < n; i++)
	{
		int x;
		int sum = 0;
		int count = 0;

		cin >> x;
		int arr[1000];

		for (int j = 0; j < x; j++)
		{
			cin >> arr[j];
			sum += arr[j];
		}

		double avg = ( sum / (double)x );

		for (int j = 0; j < x; j++)
		{
			if (avg < arr[j])
				count++;
		}

		cout << fixed;
		cout.precision(3);
		cout << ( count * 100 / (double)x ) << "%\n";
	}
}

링크

www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

 

728x90
반응형

'문제풀이 > BOJ' 카테고리의 다른 글

[C++ 백준] 2675 문자열 반복  (0) 2021.05.12
[C++ 백준] 1157 단어 공부  (0) 2021.02.02
[C++ 백준] 11004 K번째 수  (0) 2020.12.11
[C++ 백준] 1712 손익분기점  (0) 2020.11.04
[C++ 백준] 10809 알파벳 찾기  (0) 2020.08.23