[ C++ ] 백준 4344번: 평균은 넘겠지
✏️ PS/Boj

[ C++ ] 백준 4344번: 평균은 넘겠지

반응형

 

안녕하세요? 수구리입니다.

이번에 풀 백준 문제는 평균은 넘겠지라는 문제입니다.

단계별로 푸는 문제를 쭉 풀고 있습니다. 지금은 1차원 배열과 관련된 문제들입니다.

문제는 아래 링크에 두었습니다. 문제를 확인하고 와주세요

 

[ 문제 ] 4344번: 평균은 넘겠지

https://www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

 

 

[ 나의 풀이 ]


#include <iostream>
#include <vector>
#include <algorithm>
#include <string.h>
#define all(v) v.begin(), v.end()

using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	
	double overMeanStuNum = 0;
	double numOfStu = 0;
	int score;
	double mean;
	double sum = 0;
    double overMeanRate = 0;

	vector<double> v;	
    int loop = 1; // loop count
	int n; // test case
	
	cin >> n;
	
	while (n >= loop) {
		cin >> numOfStu;
		
		for (int i=0; i < numOfStu; i++) {
			cin >> score;
			v.push_back(score);
			sum += v[i];
		}
		mean = sum / numOfStu;
		
		for (int i=0; i < numOfStu; i++){
		    if (v[i] > mean) overMeanStuNum++;
		}
		overMeanRate = (overMeanStuNum / numOfStu) * 100;
		
		cout << fixed;
    	cout.precision(3);
    	cout << overMeanRate << "%\n" ;
    	
    	// reset
    	v.clear();
    	overMeanStuNum = 0;
    	overMeanRate = 0;
		mean = 0;
		sum = 0;
		loop++;
	}
	
}

 

뭔가 더 코드를 줄여서 간결하게 할 수 있을 것 같은데 생각을 더 해보아야 겠습니다.

 

[ 변수 설명 ]

  • overMeanStuNum : 평균 이상의 학생들의 수
  • numOfStu : 학생들의 수
  • score : 학생들의 점수
  • mean : 평균
  • sum : 총합
  • overMeanRate : 평균을 넘는 학생들의 비율
  • loop : n번의 테스트 케이스를 순회하기 위한 변수
  • n : 총 test case의 수

 

[ 설명 ]

  1.  각 변수들을 선언해주고 테스트 케이스를 입력받음.
  2.  loop변수가 n과 같아질때까지 반복
  3.  학생들의 수를 입력받고 그 학생들의 점수를 입력받아 vector v에 저장하면서 동시에 총합을 계산
  4. 총합을 다 더하고 나면 평균을 계산
  5. 평균 이상의 학생수들의 비율을 계산하기 위해서 vector v의 요소들을 순회하면서 평균보다 높은 학생들의 수 계산
  6. 평균을 넘는 학생들이 비율을 계산하고 해당 test case의 비율을 소수점 3번째 자리까지 출력한다.
  7. 모든 변수들을 초기화하고 loop 변수를 증가시키면서 3 ~ 6의 과정을 반복한다.

 

 

반응형

'✏️ PS > Boj' 카테고리의 다른 글

[ C++ ] 백준 10818번: 최소, 최대  (0) 2021.10.15
[ C++ ] 백준 8958번: OX퀴즈  (0) 2021.10.14
[ C++ ] 백준 3052번: 나머지  (0) 2021.10.06
[ C++ ] 백준 2577번: 숫자의 개수  (0) 2021.10.06
[ C++ ] 백준 1546번: 평균  (4) 2021.10.05