import java.util.Scanner;
public class Main {
public static void main(String[] arge) {
Scanner sc = new Scanner(System.in);
int test_case = sc.nextInt(); // 테스트 케이스
int score = 0; // 총점을 구하기 위한 변수
int cnt = 0; // 평균을 넘는 인원이 몇명인지 카운트하는 변수
double result = 0; // 비율을 구하는 변수
for(int i = 0 ; i < test_case; i++) {
int[] arr = new int[sc.nextInt()]; // 인원 수만큼 배열을 만듦.
for(int j = 0 ; j < arr.length; j++) {
arr[j] = sc.nextInt(); // 배열에 점수를 넣는다.
score += arr[j]; // 넣은 점수를 곧바로 더해 총점을 구한다.
if(j == arr.length -1) { // 모든 인원을 다 더했으면
int avg = score / arr.length; // 평균 = 총점 / 전체 인원
for(int k = 0 ; k < arr.length; k++) {
if(arr[k] > avg) { // arr[0]부터 평균과 비교해서 평균보다 크면
cnt++; // 인원 수 +1 ↑
}
}
result = (double) cnt / arr.length; // 평균을 넘는 인원의 비율
}
}
System.out.printf("%.3f%%\n" , result * 100); // 출력해준다.
score = 0; // 다음 케이스를 위해 0으로 초기화
cnt = 0; // 마찬가지도 다음 케이스를 위해 0으로 초기화
}
}
}
○ 문제 요약
대학생들은 본인이 평균은 넘는다는 안일한 생각을 한다고 한다. 그래서 점수를 입력받아서 본인이 평균이 안된다는 참혹한 현실을 깨닫게 해 주기 위해 평균을 넘는 인원이 차지하는 비율을 구하자!
○ 문제 풀이
자세한 내용은 코드 블록에 주석으로 설명하였다.
○ 결과
○ 평가
브론즈 1인만큼 특별히 어려운 문제는 아니지만 for문을 세 번을 쓰다 보니 좀 복잡해졌다. 그래서인지 몰라도 코드가 되게 지저분해 보이는데 가독성을 높일 수 있도록 코드 작성 시 유의를 해야겠다.
'문제풀이 > 백준' 카테고리의 다른 글
백준 1065. 한수(JAVA) (0) | 2022.03.22 |
---|---|
백준 4673. 셀프 넘버(JAVA) (0) | 2022.03.21 |
백준 1260. DFS와 BFS(JAVA) (0) | 2022.03.18 |
백준 1110. 더하기 사이클(JAVA) (0) | 2022.03.17 |
백준 16173. 점프왕 쩰리(Small)(JAVA) (0) | 2022.03.16 |