문제 링크
https://www.acmicpc.net/problem/4344
나의 코드 (java)
import java.util.Scanner;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
// 총 몇 개를 받을지 받는 변수
int n = sc.nextInt();
for (int i=0; i<n; 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];
}
// 학생들의 평균
float mean = Float.valueOf(sum) / num;
// 평균보다 높은 점수를 가진 학생 수 카운트할 변수
float cnt = 0;
// 평균보다 높은 학생의 수를 카운트
for (int k=0; k<num; k++){
if (mean < arr[k]){
cnt++;
}
}
// 평균보다 높은 점수의 학생들의 비율을 계산
float result = cnt / num * 100;
// 결과 출력
System.out.printf("%.3f%%\n", result);
}
}
}
이 문제는 크게 어려운 점은 없이 주석만 보면 의미를 알 수 있지만 float으로 형 변환하는 방법 Float.valuOf와 소수점 셋째 자릿수까지 출력하는 방법과 마지막에 %를 붙여서 출력하는 방법인 System.out.printf("%.3f%%\n", result);라는 방식을 알아야 합니다.
'코딩공부 > 백준 (java)' 카테고리의 다른 글
[백준 4673] 셀프 넘버 (java) (0) | 2021.07.07 |
---|---|
[백준 15596] 정수 N개의 합 (java) (0) | 2021.07.07 |
[백준 8958] OX퀴즈 (java) (0) | 2021.07.05 |
[백준 1546] 평균 (java) (0) | 2021.07.05 |
[백준 3052] 나머지 (java) (0) | 2021.07.05 |
댓글