반응형
https://www.acmicpc.net/problem/4344
테스트 케이스의 수 C를 입력 받아 반복해준다.
int C = 0;
cin >> C;
for (int i = 0; i < C; i++) {
// 여기에 코드 작성
}
학생 N명의 점수를 받아 벡터에 저장한다.
이때 sum 변수에 total 점수를 누적한다.
int N = 0;
cin >> N;
vector<int> arr = {};
int sum = 0;
for (int j = 0; j < N; j++) {
int n = 0;
cin >> n;
arr.push_back(n);
sum = sum + arr[j]; //total
}
평균을 구한 뒤. 평균보다 점수가 높은 학생의 수를 센다.
int avg = sum / N;
int cnt = 0;
for (int j = 0; j < N; j++) {
if (arr[j] > avg) {
cnt++;
}
}
비율을 소수 셋째 자리 수까지 구한다.
비율은 (점수가 평균보다 높은 학생 수) / (전체 학생 수) 이며,
cout << setpresicion() << fixed;
를 사용하여 소수 셋째 짜리까지 출력한다.
cout << setprecision(3) << fixed;
cout << (static_cast<double>(cnt) / N) * 100 << "%\n";
참고) 소수점 고정 출력
[전체 코드]
#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
int main() {
int C = 0;
cin >> C;
for (int i = 0; i < C; i++) {
int N = 0;
cin >> N;
vector<int> arr = {};
int sum = 0;
for (int j = 0; j < N; j++) {
int n = 0;
cin >> n;
arr.push_back(n);
sum = sum + arr[j];
}
int avg = sum / N;
int cnt = 0;
for (int j = 0; j < N; j++) {
if (arr[j] > avg) {
cnt++;
}
}
cout << setprecision(3) << fixed;
cout << (static_cast<double>(cnt) / N) * 100 << "%\n";
}
}
반응형
'Online-Judge > Baekjoon' 카테고리의 다른 글
[Baekjoon] C++ 11721번 열 개씩 끊어 출력하기 (0) | 2021.06.13 |
---|---|
[Baekjoon] C++ 1008번 A/B (0) | 2021.06.07 |
[Baekjoon] C++ 11654번 아스키 코드 (0) | 2021.05.31 |
[Baekjoon] C++ 2577번 숫자의 개수 (0) | 2021.05.31 |
[Baekjoon] C++ 2920번 음계 (0) | 2021.05.31 |
댓글