JAVA
[BOJ/백준] 4344번 평균은넘겠지 (JAVA/자바)
n_0_jun
2024. 9. 3. 14:00
반응형
● 해설
- 성적을 입력 할 배열 arr를 생성
- testcase 즉, for문을 몇번 돌지 입력 받음
- 학생수를 N으로 받고 arr에 N만큼 동적할당
- sum을 double형으로 선언하여 성적 누적 합 변수를 선언
- N번만큼 for문을 돌고, arr[j]번째에 성적을, sum에 성적누적합을 저장
- mean으로 평균을 구하고, for문을 통해 평균을 넘는 학생 수를 카운트
- (count/N)*100 즉, (평균이 넘는 학생수 / 전체 학생수) * 100 을 하여 백분위로 표현.
● 구현
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] arr;
int testcase = in.nextInt();
for(int i = 0 ; i < testcase ; i++) {
int N = in.nextInt(); //학생 수
arr = new int[N];
double sum = 0; // 성적 누적 합 변수
// 성적 입력부분
for(int j = 0 ; j < N ; j++) {
int val = in.nextInt(); // 성적 입력
arr[j] = val;
sum += val; // 성적 누적 합
}
double mean = (sum / N) ;
double count = 0; // 평균 넘는 학생 수 변수
// 평균 넘는 학생 비율 찾기
for(int j = 0 ; j < N ; j++) {
if(arr[j] > mean) {
count++;
}
}
System.out.printf("%.3f%%\n",(count/N)*100);
}
in.close();
}
}
반응형