풀이
자료구조
- int input_num : 테스트 케이스의 수
- int student_num : 학생 수
- int student[] : 학생 점수를 저장할 배열
- int count : 평균 이상인 학생들을 세기 위한 변수
- float mean : 학급 평균
- int sum : 학급 학생들의 점수 총합
알고리즘
- 사칙 연산을 통한 구현 문제
코드
- cout 형식으로 소수 점 제한해서 출력하는 법
cout << fixed;
cout.precision('원하는 소수점 자리');
코드
#include <iostream>
using namespace std;
int main() {
int input_num = 0;
int student_num = 0;
int student[1001] = {0};
int count = 0;
int sum = 0;
float mean = 0;
cin >> input_num;
for(int i = 0; i < input_num; i++) { //테스트 케이스 수대로 반복
cin >> student_num;
for(int j = 0; j <student_num; j++) { //학생 수대로 반복
cin >> student[j];
sum += student[j]; // 학급 점수 합계
}
mean = (float)sum / (float)student_num; //학급 평균 구하기
for(int j = 0; j < student_num; j ++) {
if((float)student[j] > mean) { // 평균보다 점수가 높은 학생이 있다면
count ++; // count 증가
}
}
//출력 형식 소수점 세자리 출력 위함
cout<<fixed;
cout.precision(3);
cout << (((float)count / (float)student_num) * 100) << "% \n";
sum = 0;
mean = 0;
count = 0;
}
return 0;
}
총평
이 문제 풀면서 멘탈이 갈렸다. 이유 없이 계속 for문에서 튕겨져 나와서 디버깅을 해도 이유를 알 수 없었기 때문이다.
수정을 포기하고 그냥 백준에 내니까 통과됐다...
온라인 컴파일러로 돌려보니까 또 잘 돌아간다.
맥북이 문제인가보다..
'🧑💻코딩 테스트 > 백준 (BOJ)' 카테고리의 다른 글
[코딩테스트/ 백준 알고리즘] BOJ.2839 : 설탕배달 (바텀업) (C++ 풀이) (0) | 2022.01.17 |
---|---|
[코딩테스트/ 백준 알고리즘] BOJ.2839 : 설탕배달 (탑다운) (C++ 풀이) (0) | 2022.01.17 |
[백준 알고리즘/ C++] BOJ.1978 : 소수 찾기 (0) | 2022.01.13 |
[코딩테스트/백준 알고리즘] 1065번 : 한수 (C++ 풀이) (0) | 2022.01.12 |
[백준 알고리즘/ C++] BOJ.10989 : 수 정렬하기 3 (0) | 2022.01.11 |
댓글