#문제
1546번: 평균
https://www.acmicpc.net/problem/1546
#접근방법
최대값을 구하는 조건문과 새로운 평균을 구하는 계산수식을 잘 작성하면 풀 수 있다.
반응형
#풀이
#include <stdio.h>
int main(){
int n,x,max=0;
double ans = 0;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&x);
ans += x;
if(max<x) max=x;
}
ans = ans/max*100/n;
printf("%lf",ans);
return 0;
}
max변수에는 최대값을 구하고,
ans변수에는 누적합을 구한다.
새로운 점수를 구하는 수식은 점수/M*100이다. (M은 최대값)
새로운 평균을 구하는 수식은
(점수1/M*100 + 점수2/M*100 + ... + 점수n/M*100)/n
= (점수1+점수2+...+점수n)/M*100/n
이므로 ans = ans/max*100/n이라는 수식을 써서 답을 구했다.
#성능
#정리
최대값을 구하는 조건문과 새로운 평균을 구하는 수식을 잘 작성하면 풀 수 있는 문제였다.
'하루 한 문제' 카테고리의 다른 글
[백준] 15650번 : N과 M (2) [C/C++] (0) | 2021.11.21 |
---|---|
[백준] 2407번 : 조합 [C/C++] (0) | 2021.11.20 |
[백준] 1330번 : 두 수 비교하기 [C/C++] (0) | 2021.11.18 |
[백준] 1157번 : 단어 공부 [C/C++] (6) | 2021.11.17 |
[백준] 1152번 : 단어의 개수 [C/C++] (0) | 2021.11.16 |