반응형
4344번: 평균은 넘겠지 (JAVA, 자바)
대략적인 설명은 코드 블럭 안에 넣어 두었습니다. 해당 문제에서 조심해야할 것은 "평균을 넘는 학생들의 비율"에서 "넘는" 것이기 때문에 이상이 아닌, 초과로 계산하여야 합니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int C = sc.nextInt(); // 테스트 케이스 수 입력받기
for(int i=0; i<C; i++) {
int[] N = new int[sc.nextInt()]; // 학생 수 입력받기
int sum = 0; // 학생들의 총 점수
int avg = 0; // 학생들의 평균 점수
int standard_cnt = 0; // 평균 이상의 학생 수
float standard_avg = 0; // 평균 점수보다 높은 학생 수 비율(%)
// 입력받은 학생 수 만큼을 반복하여 N 배열의 인덱스에 각각 저장 합니다.
for(int j=0; j<N.length; j++) {
N[j] = sc.nextInt(); // 입력받은 값을 N 배열에 저장
sum += N[j]; // 학생들의 총 점수를 sum 변수에 저장
}
avg = sum/(N.length); // 총점수/학생수를 계산하여 평균 점수를 avg 변수에 저장
for(int k=0; k<N.length; k++) {
if(N[k] > avg) {
standard_cnt++; // 평균 점수보다 높은(초과) 학생 수를 standard_cnt 변수에 저장
}
}
/*
소수점 셋째 자리까지 출력 해야하므로 학생 수(standard_cnt)를 float으로 형변환 해준 뒤
폄균 점수보다 높은 학생 수/총 학생 수를 계산하고 100을 곱해주면
평균을 넘는 학생들의 비율을 알아낼 수 있습니다.
이후 마지막으로 String.format을 사용하여 소수점 3자리까지 표시합니다.
*/
standard_avg = (float)standard_cnt/N.length * 100;
System.out.println(String.format("%.3f", standard_avg)+"%");
}
}
}
반응형
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 1075번: 나누기 (브론즈2, JAVA) (1) | 2023.12.05 |
---|---|
[백준] 15596번: 정수 N개의 합 (JAVA, 자바) (0) | 2022.03.23 |
[백준] 8958번: OX퀴즈 (JAVA, 자바) (0) | 2022.03.19 |
[백준] 1546번: 평균 (JAVA, 자바) (0) | 2022.03.19 |
[백준] 2577번: 숫자의 개수 (JAVA, 자바) (0) | 2022.03.15 |