4344번: 평균은 넘겠지
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
www.acmicpc.net
import java.io.*; //BufferedReader 를 사용하기 위함
public class Main{
public static void main(String[] args){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //입력값을 받기 위함
int count = 0; //가장 첫줄에 나오는 개수를 담기 위함
try{
count = Integer.parseInt(br.readLine()); //첫줄을 받아서 Int로 변환
} catch (IOException e){
e.printStackTrace();
}
for(int i=0; i<count; i++){ //아까 받은 count만큼 반복
String line = ""; //각 입력받을 줄을 담을 String
float lineCount = 0; //각 입력받은 줄의 첫 숫자인 점수의 개수를 담는 float
float lineSum = 0; //라인의 점수들의 합
float lineAve = 0; //라인의 점수들의 평균
float upCount = 0; //라인의 평균보다 높은 점수의 수
float upAve = 0; //높은 점수들의 수의 퍼센트?
try{
line = br.readLine(); //계산할 라인을 가져옴
} catch (IOException e){
e.printStackTrace();
}
String linse[] = line.split(" "); //라인을 공백으로 분리 해서 linse[] 배열에 넣어줌
lineCount = Float.parseFloat(linse[0]); //라인의 첫번째 수를 선언해놓은 lineCount 에 담아줌(점수의 개수)
for(int j=1; j<linse.length; j++){ //라인의 점수 갯수만큼 반복함
lineSum = lineSum + Float.parseFloat(linse[j]); //점수들의 합계를 구함
}
lineAve = lineSum/lineCount; //라인의 점수의 평균을 구함
for(int j=1; j<linse.length; j++){ //평균을 넘는 점수를 구하기 위해 다시 점수의 개수만큼 반복
if(Float.parseFloat(linse[j])>lineAve){ //평균을 넘는 점수일 경우
upCount++; //upCount를 증가
}
}
upAve = upCount/lineCount*100; //upCount를 점수 개수로 나누고 *100 하여 비율을 구해줌
System.out.println(String.format("%.3f%%", upAve)); //String.format을 이용해 소숫점 셋째자리까지 출력해 줌
}
}
}
'Coding Test > Baekjoon' 카테고리의 다른 글
[백준] 3052 나머지, java (0) | 2020.12.21 |
---|---|
[백준] 1546 평균, java (0) | 2020.12.21 |
[백준] 10817 세 수, java (0) | 2020.12.21 |
[백준] 1110 더하기 사이클, java (0) | 2020.12.21 |
[백준] 2577 숫자의 개수, java (0) | 2020.12.21 |