코딩테스트 문제/백준-자바

[백준] 평균은 넘겠지 (4344번) / 배열

유호야 2022. 12. 6. 22:01
반응형

한참을 풀었다............

이중 배열이용해야 하는 줄 알고 복잡하게 풀고 있었는데 
사람들이 그냥 배열 쓰길래 배열 쓰는 버전으로 더 간단하게 해 봤다

근데 이것보다 더 간단하게 하는 사람도 있는 것 같다...

import java.util.Scanner;

class Main {
	public static void main(String args[]) {
		Scanner scn = new Scanner(System.in);
		int arrNum = Integer.parseInt(scn.nextLine());
		// 몇 줄 출력할 것인지
		
		String rateArr[] = new String[arrNum];
		// 정답이 담길 배열
		
		for(int i = 0; i < arrNum; i++) {
			String[] strArr = scn.nextLine().split(" ");
			//개수 + 점수 x 개수 입력하고 String 배열에 하나 씩 입력
			
			int sum = 0;
			for(int j = 1; j < strArr.length; j++) {
				sum += Integer.parseInt(strArr[j]);
			}
			double avg = sum/Double.parseDouble(strArr[0]);
			// 한 열의 평균 값 구하기
			
			int count = 0;
			
			for(int j = 1; j < strArr.length; j++) {
				if(Integer.parseInt(strArr[j]) > avg) {
					count++;
				}
			}
			
			//평균 보다 높은 학생의 비율
			double rate = count/Double.parseDouble(strArr[0]);
			rateArr[i] = String.format("%.3f", rate*100)+"%";
		}
		
		for(int i = 0; i < rateArr.length; i++)
			System.out.println(rateArr[i]);
    }
	
}

 

반응형