![[BOJ] 백준_4344번_평균은 넘겠지_C/C++](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcnfOZT%2FbtriUuqlrcf%2FAAAAAAAAAAAAAAAAAAAAAPwFjl8P_QJ64NtiySRgZd-6FKrJX3y_P1wzOST03lAD%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DltmJ5qpr7yZcjjbHCmVXAQozu5w%253D)
[BOJ] 백준_4344번_평균은 넘겠지_C/C++백준 알고리즘2021. 10. 28. 08:00
목차
문제 출처
https://www.acmicpc.net/problem/4344
4344번: 평균은 넘겠지
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
www.acmicpc.net
문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
코드
//[BOJ] 4344번_평균은 넘겠지
#include<iostream>
using namespace std;
int main()
{
int c, m;
int sum, cnt;
cin >> c;
double* ratio = new double[c];
for (int i = 0; i < c; i++)
{
sum = 0; cnt = 0;
cin >> m;
int* arr = new int[m];
for (int j = 0; j < m; j++)
{
cin >> arr[j];
sum += arr[j];
}
for (int j = 0; j < m; j++)
{
if (arr[j] > sum / m)
cnt++;
}
ratio[i] = (double)cnt/m*100;
delete[] arr;
}
for (int i = 0; i < c; i++)
{
cout.precision(3);
cout << fixed <<ratio[i] <<"%"<<endl;
}
delete[] ratio;
return 0;
}
풀이 과정
이 코드에서는 double형 배열과 정수형 배열을 동적 할당하였다. 맨 처음엔 테스트 케이스 수 c를 입력 받아 평균 이상의 비율을 담을 ratio 배열을 동적할당 한다. c만큼 반복되는 for루프에서 다시 m을 입력받아 학생의 성적을 담을 배열을 동적 할당한다. 다시 for루프를 돌면서 성적을 하나하나 입력받고 동시에 sum에 학생들 총합 점수를 담는다. 또 m만큼 for루프를 돌면서 sum/m(평균)보다 클 경우 cnt를 증가시켜 평균 이상 비율인 cnt/m*100을 구해낸다. 해당 평균 이상 비율을 ratio 배열에 담고 배열 arr은 해제시킨다. 위 과정을 테스트 케이스만큼 반복시킨 후 출력하는데 꼭 출력하기 전에 cout.precision(3);를 작성해야한다. 또 이번에 소수점 위치를 고정시키는 fixed라는 키워드를 알게 되었다. 출력을 마친 후 ratio 배열을 해제시켜준다.
728x90
반응형
'백준 알고리즘' 카테고리의 다른 글
[BOJ] 백준_2869번_달팽이는 올라가고 싶다_C/C++ (0) | 2021.11.01 |
---|---|
[BOJ] 백준_9063번_대지_C/C++ (0) | 2021.10.29 |
[BOJ] 백준_23278번_영화 평가_C/C++ (0) | 2021.10.27 |
[BOJ] 백준_1436번_영화감독 숌_C/C++ (0) | 2021.10.18 |
[BOJ] 백준_1427번_소트인사이드_C/C++ (0) | 2021.10.17 |
@kdj :: Childev'note
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!