백준 문제풀이

4344번 : 평균은 넘겠지

하다블 2022. 5. 27. 19:13
반응형

문제는 다음과 같습니다.

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

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

 

풀이 코드는 다음과 같습니다.

#include <iostream>
#include <vector>
using namespace std;

int main()
{
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin>>n;
  for(int i{0};i<n;i++)
    {
      int m;
      cin>>m;
      vector<int>v;
      int total{0};
      for(int j{0};j<m;j++)
        {
          int tmp;
          cin>>tmp;
          v.push_back(tmp);
          total+=tmp;
        }
      double average=total/v.size();
      int count{0};
      for(int j{0};j<v.size();j++)
        {
          if(v[j]>average)
          {
            count++;
          }
        }
      cout<<fixed;
      cout.precision(3);
      cout<<(count*100/(double)v.size())<<"%\n";
    }
  
  return 0;
}

입력받은 점수를 모두 벡터에 넣음과 동시에 총합을 구하고 평균을 정의한 다음 벡터 안에 있는 원소들이 평균을 넘는 지를 확인하는 과정으로 해결할 수 있습니다.

소숫점을 고정 및 반올림해주어야 하는데, 이는 fixed(소숫점 고정) 과 cout.precision(소숫점 표시)를 통해서 해결할 수 있습니다.

 

반응형

'백준 문제풀이' 카테고리의 다른 글

1065번 : 한수  (0) 2022.05.27
15596번 : 정수 N개의 합  (0) 2022.05.27
8958번 : OX퀴즈  (0) 2022.05.27
2164번 : 카드 2  (0) 2022.05.26
2750번 : 수 정렬하기  (0) 2022.05.25