티스토리 뷰

728x90
반응형

 

백준 온라인 저지(BOJ) 4344번 평균은 넘겠지

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

 

4344번: 평균은 넘겠지

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10-3이하이면 정답이다.

www.acmicpc.net

* 사용언어 : C언어, C++

 

1. 문제

테스트 케이스 C 가 주어지고, 각 케이스마다 N 명 학생의 점수가 주어짐

해당 케이스에서 평균을 넘는 학생의 비율을 반올림하여 소수점 셋째 짜리까지 출력

 

2. 풀이

배열 반복을 최소화 하기 위해 고민했는데 2회 반복하게 되었습니다.

왜냐면 먼저 한 바퀴를 돌아야 평균을 구할 수 있기 때문입니다.

(1회 : 배열 입력 및 평균 계산 / 2회 : 대소 비교 및 Count)

 

소스 코드 자체는 단순하니 설명은 생략하겠습니다.

 

3. 코드

#include <stdio.h>

int main() {
	int c, n, cnt;
	int score[1000];
	double avg;

	scanf("%d", &c);

	for (int i = 0; i < c; ++i) {
		scanf("%d", &n);
		avg = 0.0;

		for (int j = 0; j < n; ++j) {
			scanf("%d", &score[j]);
			avg += score[j];
		}
		avg /= n;

		cnt = 0;
		for (int j = 0; j < n; ++j) {
			if (score[j] > avg) ++cnt;
		}

		printf("%.3f%\n", 100.0 * cnt / n);
	}

	return 0;
}

* printf 에서 "%0.3f" 사용 시 해당 숫자를 소수 아래 셋째 짜리까지 반올림하여 표시합니다.

 

별첨

백준식 개그...

728x90
반응형
댓글