신규 블로그를 만들었습니다!
문제
세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최대값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.
예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.
세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다.
출력
첫째 줄에 새로운 평균을 출력한다. 정답과의 절대/상대 오차는 10-2까지 허용한다.
예제입력1
3
40 80 60
예제출력1
75.00
예제입력2
3
10 20 30
예제출력2
66.67
예제입력3
4
1 100 100 100
예제출력3
75.25
예제입력4
5
1 2 4 8 16
예제출력4
38.75
예제입력5
2
3 10
예제출력5
65.00
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Ex1546 {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
int n = Integer.parseInt(br.readLine());
String[] input = br.readLine().trim().split(" ");
int[] data = new int[n];
int max = Integer.MIN_VALUE;
double sum = .0;
for(int i=0; i<n; i++) {
data[i] = Integer.parseInt(input[i]);
sum += data[i];
if(max < data[i]) {
max = data[i];
}
}
System.out.printf("%.2f",(double)((sum/n)*100)/max);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
※ 직접 문제 풀고 돌려본 뒤, 채점까지 마친 후에 작성한 글입니다.
더 좋은 방법이 있다면, 댓글로 알려주시면 감사하겠습니다 :)
'Algorithm > 백준 온라인 저지' 카테고리의 다른 글
백준/2751번 :: 수 정렬하기 2 (Java 구현) - Collections.sort() 이용 (2) | 2018.06.23 |
---|---|
백준/15552번 :: 빠른 A+B (Java 구현) (7) | 2018.06.23 |
백준/11721번 :: 열 개씩 끊어 출력하기 (Java 구현) (4) | 2018.06.23 |
백준/11720번 :: 숫자의 합 (Java 구현) (4) | 2018.06.23 |
백준/8393번 :: 합 (Java 구현) (4) | 2018.06.23 |
최근댓글