문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
예제 입력 1 복사
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
예제 출력 1 복사
40.000%
57.143%
33.333%
66.667%
55.556%
BufferedReader로 입력값을 받은 후에,
테스트 케이스(t)를 형 변환하여 입력받고
공백 기준으로 점수의 개수와 평균 점수들이 각각 들어오기 때문에
StringTokenizer 클래스를 이용하여 공백 기준으로 나누고 값을 나누어 저장한다
전체를 감싸는 첫 번째 반복문을 만들어
테스트 케이스 개수만큼 반복해서 돌려주고
그 안에서 조건에 맞게 코드를 구현하였다
각 줄에 평균 점수 개수를 N 변수로 값을 저장하고
배열 또한 N길이만큼 생성한다
출력 값이 소수까지 나타나기 때문에 double 타입으로 합계 sum 변수를 선언하였다
다시 반복문을 통하여 한 줄씩 읽어 들이는데,
이때 배열에 각각의 점수들을 담아 놓고
합계 sum에 누적하여 더해주었다
반복문 밖으로 나와 평균을 avg 변수로 double 타입으로 선언하였고
count 변수도 선언하였다
마지막으로 배열의 길이인 N만큼 반복문을 돌면서
평균보다 높은 점수가 있다면 카운트를 높여준다
그리고 조건에 맞게 pirntf를 써서 소수점 3번째까지만 출력해준다
'TIL > Algorithm' 카테고리의 다른 글
Java 백준 1065번 문제 (0) | 2021.09.30 |
---|---|
Java 백준 4673번 문제 (0) | 2021.09.29 |
Java 백준 8958번 문제 (0) | 2021.09.27 |
Java 백준 1546번 문제 (0) | 2021.09.26 |
Java 백준 3052번 문제 (0) | 2021.09.25 |