728x90
반응형
『목차』
0. 개요
1. 문제
2. 풀이
3. 코드
0. 개요
수학, 사칙연산 문제. 기본적인 문제라 가볍게 풀고 넘어가겠다.
1. 문제
https://www.acmicpc.net/problem/4344
4344번: 평균은 넘겠지
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
www.acmicpc.net
[문제]
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
[입력]
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
[출력]
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
[예제 입력 1]
5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91
[예제 출력 1]
40.000%
57.143%
33.333%
66.667%
55.556%
2. 풀이
"퍼센트(%) 기호 자체를 출력하기 위해서는 퍼센트 기호를 '2개 중복'해 주어야 한다"라는 사실을 알고 있다면, 쉽게 풀 수 있는 문제이다.
코드와 주석에 적힌 내용을 따라가다 보면 쉽게 풀리는 문제이기 때문에, 자세한 풀이는 생략하겠다.
3. 코드
#pragma warning(disable:4996)
#include <stdio.h>
int main(int argc, char* argv[]) {
int C; scanf("%d", &C);
for (int i = 0; i < C; i++) {
int grade[1000] = {};
int avg = 0, count = 0;
int N; scanf("%d", &N);
/* 점수 총합 구하기 */
for (int j = 0; j < N; j++) {
scanf("%d", &grade[j]);
avg += grade[j]; //변수는 avg이지만, sum을 구하는 과정이다.
}
/* 평균 구하기 */
avg /= N;
/* 평균을 넘는 학생 수 구하기 */
for (int j = 0; j < N; j++)
if (grade[j] > avg)
count++;
/* 비율 출력하기 */
printf("%.3f%%\n", (double)count / N * 100);
}
return 0;
}
/*
퍼센트(%) 기호 자체를 출력하기 위해서는 퍼센트 기호를 '2개 중복'해 주어야 한다.
*/
728x90
반응형
'⌨️CS-PS > 백준_수학&구현' 카테고리의 다른 글
[Baekjoon/백준][25314][C/C++] 코딩은 체육과목입니다 (0) | 2023.05.02 |
---|---|
[Baekjoon/백준][11382][C/C++] 꼬마 정민 (0) | 2023.05.02 |
[Baekjoon/백준][3052][C/C++] 나머지 (0) | 2023.01.31 |
[Baekjoon/백준][2869][C/C++] 달팽이는 올라가고 싶다 (0) | 2023.01.29 |
[Baekjoon/백준][2475][C/C++] 검증수 (0) | 2023.01.27 |