까잉이의 개발노트

[ 백준 4344 ] 평균은 넘겠지 JAVA(자바) 문제풀이 본문

개발문제풀이

[ 백준 4344 ] 평균은 넘겠지 JAVA(자바) 문제풀이

까잉이 2022. 3. 25. 18:39

 

소수점 반올림 땜에 조금 까다로웠다..

헐레벌떡 제출했는데 % 안붙였다고 틀림 처리되다니!😡(억울)

이제 좀더 꼼꼼히 봐야겠다...😢


풀이순서

1. 케이스(n) 먼저 입력 받고 while문을 돌린다

2. while문 안에서 학생 수(student) 입력 받고 학생 점수를 담을 배열(scoreArr)을 선언한다

3. for문을 이용해 학생 점수를 입력 받고 배열에 담는다 그리고 대입연산자로 총 점수(total)도 구한다

4. 총 점수에서 학생 수를 나누어 평균점수(avg)를 구한다

5. 또 다시 for문으로 배열 안의 점수를 평균점수와 비교해 평균점수를 넘는 학생 수(goodStudent)를 구한다

6. "평균점수 넘는 학생 수 / 총 학생 수 * 100"으로 평균점수 넘는 학생의 비율(totalAvg)을 구한다

7. String.format()을 이용해 소수점 3째자리 반올림하여 출력하고 끝에 %를 붙인다

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();

		int i = 0;
		while(i < n) {
			int student = sc.nextInt(); // 학생 수
			int total = 0; // 총점
			int[] scoreArr = new int[student]; // 점수 담을 배열

			for(int j = 0; j < student; j++) {
				scoreArr[j] = sc.nextInt();
				total += scoreArr[j];
			}

			float avg = (float)total/student; // 평균점수
			int goodStudent = 0; // 평균 점수 넘는 학생 수

			for(int k = 0; k < scoreArr.length; k++) {
				if(scoreArr[k] > avg) {
					goodStudent++;
				}
			}

			float totalAvg = (float)goodStudent/student*100; // 평균점수 넘는 학생의 비율

			System.out.println(String.format("%.3f", totalAvg) + "%");

			i++;
		}
	}

}
Comments