알고리즘

[백준/Java]Q4344

  • -
반응형

준 알고리즘 5단계 1차원 배열 4344번 문제입니다.


Q. 학생들의 평균 점수를 구하는 프로그램을 작성하시오.

[입력]
- 첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
- 둘째 줄부터 각 테스트 케이스마다 학생의 수 N이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다.

[조건]
- 학생의 수 N은 1 ≤ N ≤ 1000인 정수이다.
- 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
- 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.(문자형X)

 

풀이

이 문제의 핵심은 배열을 이용하는 것이었다.

BufferedReader 클래스의 readLine() 메소드(입력받은 값을 한 줄로 읽어들임)를 이용해서 공백을 기준으로 배열에 담아 계산 반복 처리하였다.

 

소스
package com.baek.algo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Q4344 {

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

		int c = Integer.parseInt(bf.readLine());		// 테스트 케이스 수

		for(int i = 0; i < c; i++) {
			String arr[] = bf.readLine().split(" ");

			int n   = Integer.parseInt(arr[0]);			// 학생수
			int sum = 0;
			int cnt = 0;

			for(int j = 1; j <= n; j++) {
				int score = Integer.parseInt(arr[j]);	// 점수

				sum = sum + score;
			}

			double avg = sum / n;	// 평균

			for(int j = 1; j <= n; j++) {
				int score = Integer.parseInt(arr[j]);

				if(avg < score) {
					cnt = cnt + 1;
				}
			}

			double rate = (double) cnt / (double) n * 100;	// 비율

			System.out.printf("%.3f%%\n", rate);
		}

		bf.close();
	}
}
반응형

'알고리즘' 카테고리의 다른 글

[백준/Java]Q1712  (0) 2021.07.08
[백준/Java]Q1065  (0) 2021.07.08
[백준/Java]Q1110  (0) 2021.07.06
[백준/Java]Q10871  (0) 2021.07.06
[백준/Java]Q2884  (0) 2021.07.05
Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.