코딩테스트/백준

백준 1546 Java

플래시🦥 2022. 7. 15.
반응형

https://www.acmicpc.net/problem/1546

 

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

>>문제


>>코드

 

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

댓글