반응형
https://www.acmicpc.net/problem/1546
- 문제
- 문제 풀이
백준 1546번 평균은 브론즈 1 난이도의 수학 문제이다. 이 문제에서는 먼저 시험을 본 과목의 개수 N이 주어지고 그다음 줄에 시험 성적 N개가 주어진다. 이 시험들 중에서 가장 잘 본 시험의 점수를 M이라고 하겠다. 그리고 모든 시험 점수를 가장 잘 본 시험 점수 M으로 나눠주고 다시 100을 곱한다. 새로 나온 시험 성적 N개의 평균을 구해서 출력해주면 되는 문제이다.
우선 시험 성적을 입력받을 때 최댓값 M도 같이 구해준다. 그리고 입력받는 모든 시험 성적을 double형 변수 sum에 더해준다. 이렇게 하는 이유는 시험 성적을 다 더한 다음 M으로 한 번만 나눠주기 위함이다. 성적을 다 더하고 M으로 나눈 다음 다시 100으로 곱해준다. 왜냐하면 이렇게 해야지 백분율이 아닌 점수가 되기 때문이다. 그리고 마지막으로 본 시험 과목의 개수 N으로 나눠주면 평균이 구해진다.
자세한 코드는 밑에서 참고할 수 있다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int m = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
double sum = 0;
for (int i = 0; i < n; i++) {
int num = Integer.parseInt(st.nextToken());
m = Math.max(m, num); //시험 점수 최댓값 구하기
sum += num; //시험 점수 합에 더해주기
}
sum /= (double)m; //시험 점수 최댓값으로 나눠주기
sum *= 100.0;
sum /= (double)n; //평균 구하기
System.out.print(sum);
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 1152번 : 단어의 개수 – JAVA [자바] (0) | 2022.07.07 |
---|---|
[백준] 11654번 : 아스키 코드 – JAVA [자바] (0) | 2022.07.07 |
[백준] 11720번 : 숫자의 합 – JAVA [자바] (0) | 2022.07.07 |
[백준] 2562번 : 최댓값 – JAVA [자바] (0) | 2022.07.07 |
[백준] 2884번 : 알람 시계 – JAVA [자바] (0) | 2022.07.06 |
댓글