[ 백준 4344번 ] 평균은 넘겠지

2021. 11. 22. 10:29백준/단계별 문제

백준 4344번 / 5단계 / 평균은 넘겠지

 

백준 4344번 - 평균은 넘겠지

 

채점 결과는 다음과 같다

  메모리 시간
1번째 방법 1112 KB 0 ms

 

문제 풀이
학생 수 n과 학생 점수 student 배열을 반복적으로 입력받을 사이클 변수 c를 선언해 준다.

1. 학생 수 n 만큼 학생 점수를 입력받고 합계 변수 sum에 학생 점수를 반복을 돌리면서 더해준다, 반복이 끝나면
평균 변수 avg에 평균을 구해 대입해 준다

n = 2
student [0] = 40
student [1] = 60

sum += student [0]
sum = 40
sum += student [1]
sum = 100

avg(50) = sum(100) / n(2)

2. 입력받은 학생 점수들 중 학생 수만큼 반복을 하면서 평균 변수 avg 보다 높으면 카운팅 변수 cnt를 플러스해 준다. 그리고 평균을 넘는 학생 비율을 변수 pass에 대입해 준다.

student [0] = 40 > avg(50) false
student [1] = 60 > avg(50) true / cnt ++

pass = cnt(1) / n(2) * 100
pass = 50

3. 출력 조건에 맞춰 합격비율 pass를 소수점 셋째 짜리까지 출력해 준다

pass = 50
출력 << 50.000%
pass = 40.589123
출력 << 40.589%

 

코드
#include <stdio.h>
#include <string.h>
#include <algorithm>

using namespace std;

int main() {
	int student[1000];
	int c, n, i, j;
	float avg = 0;
	float sum = 0;
	float cnt = 0;
	float pass = 0;

	scanf("%d", &c);
	for ( i = 0; i < c; i++ ) {
		scanf("%d", &n);
		avg = 0;
		sum = 0;
		cnt = 0;
		for ( j = 0; j < n; j++ ) {
			scanf("%d", &student[j]);
			sum += student[j];
		}
		avg = sum / n;
		for ( j = 0; j < n; j++ ) {
			if ( student[j] > avg ) cnt++;
		}
		pass = cnt / n * 100 ;
		printf("%.3f%\n", pass);
	}
}

'백준 > 단계별 문제' 카테고리의 다른 글

[ 백준 4673번 ] 셀프 넘버  (0) 2021.11.29
[ 백준 15596번 ] 정수 N개의 합  (0) 2021.11.25
[ 백준 8958번] OX퀴즈  (0) 2021.11.15
[ 백준 1546번 ] 평균  (0) 2021.11.12
[ 백준 3052번 ] 나머지  (0) 2021.11.12