반응형
https://www.acmicpc.net/problem/4344
[풀이방법]
1. Scanner를 통해 값을 받는다
2. tastcase의 갯수를 받고 for문을 tastcase만큼 반복한다.
3. 각 케이스의 학생수를 int student로 받은후 student의 길이만큼의 arr배열을 생성해준다.
4. sum이라는 변수를 0으로 초기화 해둔 후 2중 for문을 구성하여 학생의 수만큼 반복하며 arr에 각 점수를 넣어준다.
5. arr에 들어간 점수를 sum 에 누적하여 합계를 만든다.
6. 이후 합계를 학생수로 나누어 mean이라는 변수에 저장
이후 for문을 구성하여 학생들의 점수가 mean(평균)보다 큰 학생의 점수를 비교한 후 평균을 넘는 학생의 수를 count를 통해 누적해준다.
7.이제 평균을 넘는 학생의 퍼센트를 소수점 3자리까지 나타내주면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr;
int testcase = sc.nextInt(); //케이스의 갯수
for (int i=0; i<testcase; i++){
int student = sc.nextInt(); //각 케이스의 학생수
arr = new int[student]; //각 케이스의 학생수를 배열에 넣어줌
int sum = 0; //각 케이스의 성적의 합
for (int j=0; j<student; j++){
arr[j] = sc.nextInt(); //배열에 점수 입력
sum+=arr[j]; //성적합계에 각 점수 누적
}
int mean = sum/student; //각 케이스의 평균
int count = 0;
for (int j=0; j<student; j++){
if (arr[j]>mean){
count++;
}
}
//System.out.println("%3f%%\n",(count/student)*100);
System.out.printf("%.3f", 100.0 * count / student);
System.out.println("%");
}
sc.close();
}
}
|
cs |
반응형
'알고리즘 > 백준(BAEKJOON)' 카테고리의 다른 글
[백준]10828 스택 /자바/JAVA (0) | 2021.11.03 |
---|---|
[JAVA] 백준 2750 수 정렬하기 (0) | 2021.10.12 |
[1152 자바] 단어의 개수/백준 (0) | 2021.09.24 |
[1157 자바] 단어공부: 알고리즘/ 백준 (0) | 2021.09.23 |
[10809 자바] 알파벳 찾기 [백준] (0) | 2021.09.16 |