반응형
과연 그럴까요?
https://www.acmicpc.net/problem/4344
4344번: 평균은 넘겠지
문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자
www.acmicpc.net
문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
(문제가 이게 뭐얔ㅋㅋㅋㅋㅋㅋ)
문제 설명
평균을 넘는 학생의 비율을 구하는 문제.
1. StringTokenizer로 학생 수 알아낸 후 학생 수만큼 for문을 돌아 점수를 저장한다. 점수 저장하면서 sum에도 더해주면 평균도 같이 구할 수 있다.
2. 방금 저장한 배열을 활용해 역시 for문을 돌려 평균을 넘는 학생수를 cnt 변수를 활용해 구한다.
3. DecimalFormat이라는 라이브러리를 사용해 소수점 자리수를 정해준다.
1
|
DecimalFormat df = new DecimalFormat("0.000");
|
cs |
3-1. String.format을 사용해 소수점 자리수를 정해줄 수도 있다.
1
|
bw.write(String.format("%.3f", (double)cnt / a * 100) + "%\n");
|
cs |
성공 코드
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
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.ArrayList;
import java.text.DecimalFormat;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader((System.in)));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter((System.out)));
int c = Integer.parseInt(br.readLine()); // 테스트 케이스 개수
for (int i = 0; i < c; i++) {
int avg = 0, sum = 0, cnt = 0;
ArrayList arr = new ArrayList();
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken()); // 학생 수
for (int j = 0; j < a; j++) { // 점수를 배열에 저장 + 합계,평균 계산
int b = Integer.parseInt(st.nextToken());
arr.add(b);
sum += b;
}
avg = sum / a;
for (Object ob : arr) //평균을 넘는 학생 수
if ((Integer)ob > avg) cnt++;
DecimalFormat df = new DecimalFormat("0.000"); // 소수 셋째자리까지 출력
bw.write(df.format((double)cnt / a * 100) + "%\n");
}
bw.flush(); bw.close();
}
}
|
cs |
![](https://blog.kakaocdn.net/dn/bdBiTP/btqzu8XErdb/CVvw2KW57uktkqH9bRtkT0/img.png)
반응형