(백준 알고리즘 문제풀이) 4344번 평균은 넘겠지
by 줌코딩
문제
어떻게 접근할 것인가?
- 이 문제는 sorting을 하고 upper_bound를 이용해서 평균 전까지 마지막 값을 찾고 전체 갯수에서 나눠준다.
코드
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int n, m, input;
scanf("%d", &n);
while(n--){
int sum = 0; float aver;
scanf("%d", &m);
vector<int> v(m);
for(int i = 0; i < m; i++){
scanf("%d", &v[i]);
sum += v[i];
}
sort(v.begin(), v.end());
aver = (float)sum / (float)m;
int up = upper_bound(v.begin(), v.end(), aver) - v.begin();
printf("%.3f%%\n", 100 - (float)(up)*100/(float)m);
}
}
느낀점
- upper bound를 수월하게 쓸 수 있음에 만족한다 ㅎㅎ
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Subscribe via RSS