Algorithm/기타
[백준 4344번] 평균은 넘겠지
agility
2019. 12. 17. 23:25
백준알고리즘 4344번 : 평균은 넘겠지
각 점수를 받고, 이들의 합을 구한 뒤
점수의 갯수만큼 나눠준 평균값을 정의한다.
이러한 일련의 과정은 어렵지 않게 풀 수 있을 것이고,
출력을 소숫점 3자리까지 반올림으로 행하는 것이 더 중요한 것 같다.
풀이 과정
1. 각 점수들을 받는 동시에, 점수 총점을 구하기 위해 더해준다.
2. 더한 값을 점수의 갯수로 나눈다.
3. for문을 한번 더 돌려, 평균보다 높은 점수의 갯수를 count한다.
4. printf문을 이용하여 비율을 소수 셋째자리까지 출력한다.
소스 ▽
더보기
import java.util.Scanner;
public class Main {// 4344번 평균은 넘겠지
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int testCase = Integer.parseInt(sc.nextLine());
for (int i = 0; i < testCase; i++) {
int num = sc.nextInt();
int [] arr = new int [num];
int sum = 0;
for (int j = 0; j < num; j++) {
arr[j] = sc.nextInt();
sum+=arr[j];
}
double avg= (double)sum/num;
int overAvg = 0;
for (int j = 0; j < num; j++) {
if (arr[j]>avg) {
overAvg++;
}
}
System.out.printf("%.3f%%\n",(double)overAvg*100/num);
}
}
}
Summary
1. System.out.printf("%.3f",double값 x) : double의 값을 갖고있는 x 변수를, %f 자리에 출력한다.
%뒤에 .3을 입력함으로써 소수 3째자리까지 반올림하여 출력할 수 있다.
2. System.out.printf("%%") : printf에서는 %가 변수 값을 받는 역할을 하기때문에,
%를 2번 입력함으로써 % 1개를 출력할 수 있다.