반응형
https://www.acmicpc.net/problem/1546
>>문제
>>코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a=scan.nextInt();
double[] score=new double[a];
double total=0;
for(int i=0;i<a;i++) {
score[i]=scan.nextDouble();
//System.out.println("1_score_"+i+"="+score[i]);
}
double max=score[0];
if(a>1) {
for(int i=1;i<a;i++) {
if(max<=score[i]) {
max=score[i];
}
}
}
//System.out.println("max="+max);
for(int i=0;i<a;i++) {
score[i]=Math.round(score[i]/max*100);
total+=score[i];
//System.out.println("2_score_"+i+"="+score[i]);
}
System.out.println(total/a);
}
}
총 시험 과목의 수가 1개일 경우 최대값을 찾을 필요가 없다. 그래서 if(a>1) 이 없이 max를 찾는 과정을 거치게 되면 오류가 발생한다. 그래서 if문을 통해 넘어가도록 해주었다.
- Math.round()를 이용하여 소수전 n번까지 출력 할 수 있다. (round(float a)는 인자로 전달된 float을 가장 가까운 int로 반올림하여 리턴한다.
- String.format("%.1f",total/3)는 인자로 전달된 값을 소수점 두번째 자리에서 반올림 하여 한자리까지 출력한다.
>>결과
(처음에 if(a>1)문을 추가 하지 않아 틀렸다)
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
백준 1152 Java (0) | 2022.07.19 |
---|---|
백준 15596 Java (0) | 2022.07.15 |
백준 8958 Java (2) | 2022.07.15 |
백준 3052 Java (0) | 2022.07.14 |
백준 2577번 Java (0) | 2022.07.14 |
댓글