728x90
문제
https://www.acmicpc.net/problem/4344
4344번: 평균은 넘겠지
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
www.acmicpc.net
해결
평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력해야 하는 문제였다.
학생들의 점수를 배열의 원소로 입력받아
1. for문을 통해 총합을 구한 뒤
2. 평균을 구하고 (총합 / 전체 학생 수)
3. for문을 통해 평균보다 점수가 높은 학생의 수를 구한 뒤
4. 평균을 넘는 학생들의 비율을 구하였다. ((평균보다 점수가 높은 학생의 수 / 전체 학생 수) * 100)
printf() 메서드를 이용해 소수점 n번째 자리까지 출력하는 방법
printf() 지시자 | 설명 |
%f | 부동 소수점의 형식으로 출력 (소수점 이하 최대 6자리까지 표현) |
%.nf | 소수점 n번째 자리까지 출력 |
ex) | |
%.1f | 소수점 첫째 자리까지 출력 |
%.5f | 소수점 5번째 자리까지 출력 |
%.7f | 소수점 7번째 자리까지 출력 |
%.11f | 소수점 11번째 자리까지 출력 |
구현
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
|
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int c = sc.nextInt(); // 테스트 케이스의 개수 입력받음
for (int i = 0; i < c; i++) { // 테스트 케이스의 수만큼 for문 실행
int sum = 0; // 총합을 저장할 변수를 선언하고 0으로 초기화
int cnt = 0; // 평균보다 점수가 높은 학생의 수를 저장할 변수를 선언하고 0으로 초기화
// 각각의 테스트 케이스를 확인할 때마다 0으로 초기화된다
int n = sc.nextInt(); // 학생의 수 입력받음
int[] score = new int[n]; // 학생의 점수를 저장할 배열 선언
for (int j = 0; j < n; j++) { // 학생의 수만큼 for문 실행
score[j] = sc.nextInt(); // 학생의 점수를 배열에 입력받음
}
for (int k = 0; k < n; k++) { // 학생의 수만큼 for문 실행
sum += score[k]; // 학생의 점수를 각각 더해 총합을 구한다
}
double avg = (double) sum / n; // 평균 = 총합 / 학생 수
for (int l = 0; l < n; l++) { // 학생의 수만큼 for문 실행
if (score[l] > avg) { //l번째 학생의 점수가 평균보다 높으면
cnt++; // 평균보다 점수가 높은 학생의 수를 저장하는 변수를 증가시킴
}
}
double res = (((double) cnt / n) * 100); // 평균을 넘는 학생의 비율 = 평균보다 점수가 높은 학생 수 / 전체 학생 수) * 100
System.out.printf("%.3f%%\n", res); // 소수점 셋째 자리까지 %와 함께 한 줄씩 띄워서 출력
}
}
}
|
cs |
결과
728x90
'Algorithm > Beakjoon' 카테고리의 다른 글
[Java] baekjoon 1712 : 손익분기점 / 기본 수학 1 (0) | 2021.08.31 |
---|---|
[Java] baekjoon 2941 : 크로아티아 알파벳 / 문자열 (0) | 2021.08.30 |
[Java] baekjoon 8958 : OX퀴즈 / 1차원 배열 (0) | 2021.08.27 |
[Java] baekjoon 3052 : 나머지 / 1차원 배열 (0) | 2021.08.26 |
[Java] baekjoon 15552 : 빠른 A+B / for문 (0) | 2021.08.25 |
댓글