백준 (4344번: 평균은 넘겠지)_Java
제목:평균은 넘겠지
브론즈1
문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

알고리즘 자체는 쉽지만 코드를 구현하는데 애먹을 수 있는 코드라고 생각한다. 문제를 쉽게 설명하자면 case별 학생들의 평균점수를 넘는 비율을 구하는 것이다. 예제 입력 50 50 70 80 100으로 예를 들면 평균값은 70 70을 넘는 학생수는 단 두 명이다 (80 ,100) 총 5명 중 2명이 넘었으므로 출력으로는 40%를 출력해준다. 알고리즘(평균 넘은 학생수/총 학생수)*100
바로 코드를 보여주겠다 코드는 Scanner와 BufferedReader로 입력받은 코드 두 개를 비교해보겠다.

- 7~9줄: 한 줄씩 변수들을 설명하자면 (7: 총 testcase 변수) (8: 변수명 그대로 total을 저장하기 위한 double변수) (9: 평균을 넘는 학생들을 count 하기 위한 변수)
- 10~12줄: C가 줄을 개수이면 N은 각 점수이다. C는 행 N은 열이라고 생각하자. score배열을 선언한다.
- 13~17줄: 한 줄에 점수를 입력하는 동시에 score배열에 저장시킨다. 그리고 total+=score [j]를 해 총합을 구한다.
- 18줄: 평균을 구한다. for문 밖에 연산한 이유는 for문안에 있으면 계속 나뉘어 지기 때문
- 21~24줄: total <score [j]로 한 줄을 점수를 하나하나 비교해본다. total을 넘으면 평균을 넘은 학생으로 간주해서 count를 증가시킨다.
- 26줄: 알고리즘(평균 넘은 학생수/총 학생수)*100 위에 내가 적은 이 문제를 풀기 위한 알고리즘이다. 여기서 N은 int형이므로 형변환시켜준다.
- 27줄: 부동소수점 3자리까지 표현하기 위해 printf()함수 사용



알고리즘 분류
https://www.acmicpc.net/problem/4344
4344번: 평균은 넘겠지
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
www.acmicpc.net
대표 사진 출처:
https://icon-icons.com/ko/%EC%95%84%EC%9D%B4%EC%BD%98/java/130901