반응형
코딩하기 전 생각하기
/*
TC의 개수를 입력받고 그만큼 반복한다.
학생들의 점수를 다 더하고 학생 수로 나눠서 평균값을 구한다.
평균값을 넘는 학생 수를 count 하고 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
*/
코드
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int num;
cin >> num;
for ( int i = 0; i < num; i++ ) {
int student_num;
cin >> student_num;
vector<int> score;
int score_sum = 0, count = 0;
double score_avg, rate;
for ( int j = 0; j < student_num; j++ ) {
int s;
cin >> s;
score.push_back(s);
score_sum += s;
}
score_avg = (double)score_sum / student_num ;
for ( int k = 0; k < student_num; k++ )
if (score[k] > score_avg) count++;
rate = (double)count / student_num;
printf("%.3f%%\n", rate*100);
}
}
느낀점
쉬운 문제이기는 했지만 변수 선언이 불필요하게 많이 들어간 것 같다. 변수 이름도 좀 줄이고 싶다. 피어리뷰를 할 때 선배님들한테 팁 좀 물어봐야겠다.
나눗셈을 할 때 몫만 나오는 것을 방지하기 위해서 int형 앞에 (double)을 붙이거나 1.0을 곱해주는 것을 유의하면 좋을 거 같다.
백준에서 9달전에 이 문제를 풀었던 기록이 있어서 신기했다.

(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.
댓글 환영합니다!
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준/BOJ] 8958번 - OX퀴즈 (C++) (0) | 2021.07.06 |
---|---|
[백준/BOJ] 4659번 - 비밀번호 발음하기 (파이썬) (0) | 2021.07.06 |
[백준/BOJ] 1159번 - 농구 경기 (C++) (0) | 2021.07.06 |
[백준/BOJ] 2799번 - 블라인드 (C++) (2) | 2021.07.06 |
[백준/BOJ] 2920번 - 음계 (C++) (0) | 2021.07.05 |
댓글