Java/Daily-Java

[Array] 버리긴 아까운 백준 오답 (feat.MultiArray,No.4434)

모모토 2021. 4. 21. 17:07
반응형

 

● 예제의 출력 결과만 보고 코딩을 하니 이런 식으로 코딩을 해 벼렸다고 한다. 그래도 2차원 배열은 어느 정도 할 줄 아는 듯하다..

 

public class Main {
	public static void main(String[] args) {
		int[][] Case = { { 5 }, 
						 { 5, 50, 50, 70, 80, 100 }, 
						 { 7, 100, 95, 90, 80, 70, 60, 50 }, 
						 { 3, 70, 90, 80 },
						 { 3, 70, 90, 81 }, 
						 { 9, 100, 99, 98, 97, 96, 95, 94, 93, 91 } 
					};
		
		int[] sumArr = new int[Case[0][0]];

		for (int i = 1; i < Case.length; i++) {
			for (int j = 1; j < Case[i].length; j++) {
				sumArr[i - 1] += Case[i][j];
			}
		} //학생들의 점수합을 담는 배열의 생성

		for (int i = 1; i < Case.length; i++) {
			double studentNum = Case[i][0]; // 행의 총 학생수
			double count = 0; // 평균이상의 학생수
			double AveragePerClass = (sumArr[i - 1] / studentNum); //각 행마다 평균값을 넣을 변수
			for (int j = 1; j < Case[i].length; j++) {
				if (Case[i][j] > AveragePerClass) {
					count++;
				}
				
			}
			double a = (100000*(count/(double)(Case[i][0]))/(double)1000); //각 행에서 평균이상의 점수를 받은 학생의 비율
			System.out.printf("%.3f%s",a,"%");
			System.out.println();
		}
	}
}