본문 바로가기
Algorithm/C++

백준 - 4344 - 평균은 넘겠지 - C++ / 2차원 배열 동적 할당

by imagineer_jinny 2021. 3. 8.

4344번: 평균은 넘겠지 (acmicpc.net)

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

문제

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

입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

 

풀이

#include <iostream>
#include <algorithm>
#include <stdio.h>

using namespace std;


int main() {
	int C, N;
	int score[1000];
	double count = 0;
	double avg = 0;

	cin >> C;
	for (int i = 0; i < C; i++)
	{
		cin >> N;
		for (int j = 0; j < N; j++)
		{
			cin >> score[j];
			avg = avg + score[j];
		}
		avg = avg / N;
		for (int k = 0; k < N; k++)
		{
			if (avg < score[k])
			{
				count += 1;
			}
		}
		cout << fixed;
		cout.precision(3);
		cout << count / N * 100 * 1000 / 1000 << "%" << "\n";
		avg = 0;
		count = 0;
	}
   
	return 0;
}

못푼 이유: 동적 할당과 2차원 배열에 대해 애매하게 알고 있음. 시도는 했는데... 잘 안됨

2차배열 없이도 잘 쓸 수 있었네.. N과 N에 대한 점수 값을 어떻게 입력하고 저장해야하나에 꽂혔었다. 

댓글