[백준] 평균은 넘겠지

박호진·2021년 6월 13일
0
post-thumbnail

❔ 문제

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

💭 입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

🖨 출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.!

예제

💡문제 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) {
		int [] arr;
		double hap;
		double count;
		try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in));) {
			
			int C = Integer.parseInt(br.readLine()); //테스트수
			StringTokenizer st;
			
			for (int i = 0; i <C; i++) {
				st = new StringTokenizer( br.readLine());
				
				int N = Integer.parseInt(st.nextToken()); 
				
				arr = new int[N];
				hap = 0;
				 for (int j = 0; j <N; j++) {
					 int jumsu = Integer.parseInt(st.nextToken()); 
					 arr[j] = jumsu;
					 hap +=jumsu;
					
				}
				 
				 count = 0;
				 double mean = hap/N;
				 for (int j = 0; j < N; j++) {
					if (mean<arr[j]) {
						count++;
					}
				}
				
				 System.out.printf("%.3f\n",(count/N)*100);
				 System.out.println("%");   
			}
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

풀이 과정

처음 버퍼를 이용하여 테스트 케이스의 갯수를 입력받는다
그리고 for문을 이용하여 테스트 갯수만큼 반복하여 학생수 와 성적을 모두 입력받는다
이때 구분자는 스페이스바이다
받은 그 데이터를 토크나이저를 이용해 짜른다
첫번째 값을 학생수 그다음 자르는 값을 모두 성적에 넣는다
평균을 계산후 count변수에 넘는 학생 수는 더한다
마지막 인원수의 퍼센트를 구해 출력한다

profile
안녕하세요 초보 프로그래머 입니다 잘부탁드립니다

0개의 댓글