프로그래밍-학습기록/코딩테스트

백준 온라인 저지 | 4344 | 배열: 평균은 넘겠지

leesche 2020. 7. 29. 21:31

문제

나의 풀이

쉬웠다. 입출력 모두 버퍼를 활용하려고 했다. 버퍼로 출력할 때 형식을 어떻게 지정하는지 몰랐는데, String.format 클래스를 처음 알게 되어 사용했다. 

package baekjunOnlineJudge;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Bj_4344 {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
		int testCaseCount = Integer.parseInt(br.readLine());
		
		String[] testCase = new String[testCaseCount];
		
		for(int i=0; i<testCaseCount; i++) {
			testCase[i] = br.readLine();
			String[] studentCountAndScore = testCase[i].split(" ");
			
			int studentCount = Integer.parseInt(studentCountAndScore[0]);
			int sumOfScore = 0;
			int aboveMeanScoreStudentCount = 0;
			for(int j=1; j<=studentCount; j++) { // 평균 구하기
				sumOfScore+=Integer.parseInt(studentCountAndScore[j]);
			}
			for(int j=1; j<=studentCount; j++) { // 평균을 넘는 학생 비율 구하기 (소수점 셋째 자리까지 출력)
				if(Integer.parseInt(studentCountAndScore[j]) > (float)sumOfScore/studentCount) {
					aboveMeanScoreStudentCount++;
				}
			}
			bw.write(String.format("%.3f", (float)aboveMeanScoreStudentCount/studentCount*100)+"%\n");
		}
		bw.flush();
		bw.close();
	}
}