상세 컨텐츠

본문 제목

[백준>단계별로풀어보기>1차원배열>평균은 넘겠지]JAVA풀이

PROGRAMMING/백준알고리즘

by 니콜 키크드만 2020. 1. 31. 14:42

본문

import java.io.*; 
import java.util.*; 
public class Main { 
	public static void main(String[] args) throws Exception{ 

      BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); 

      int testCase = Integer.parseInt(br.readLine()); // testcase 
      for(int i = 0; i < testCase; i++) { 
          String inputVal = br.readLine(); // 학생수 & N명의 점수 

          int []inputArray = Arrays.stream(inputVal.split(" ")).mapToInt(Integer::parseInt).toArray(); 

          double avgScore = 0.0; // 평균값 
          int sumScore = 0; // 전체 학생의 점수 총합 
          int studentCount = inputArray[0]; // 학생수 

          for(int j = 1; j < inputArray.length; j++) { 
              sumScore += inputArray[j]; 
              if(j == inputArray.length -1) { // 마지막 점수 일때 평균을 구한다 
                  avgScore = sumScore / studentCount; 
              } 
          } 

          int overAvgCount = 0; // 평균보다 넘는 학생의 수 
          for(int j = 1; j < inputArray.length; j++) { 
              if(inputArray[j] > avgScore) { 
                  overAvgCount ++; 
              } 
          } 

          double avg = ( overAvgCount * 100 ) / (studentCount*1.0); 
          //1.0을 곱해줘야 double 형이 되어서 소숫점까지 출력됨  

          bw.write(String.format("%.3f",avg) + "%"); 
          bw.write("\n"); 
      } 

      bw.flush(); 
      bw.close(); 
	} 
}

궁금한건 댓글 주세요

알고리즘에 최선의 답은 없습니다.

반응형

관련글 더보기

댓글 영역