열정 실천

[java] 백준 - 1546 평균 (do it 알고리즘 002) 본문

개발 공부/백준 문제풀이

[java] 백준 - 1546 평균 (do it 알고리즘 002)

구운오니 2022. 7. 22. 00:52

처음 짠 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class doit_002 {

    public static void main (String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] arr = new int[n];
        String a = br.readLine();
        StringTokenizer st = new StringTokenizer(a," ");
        int max = 0;
        float sum = 0;
        
        for(int i = 0; i<n; i++){
            arr[i] = Integer.parseInt(st.nextToken());
            if(max < arr[i]) max = arr[i];
        }
        for(int i = 0; i<n; i++){
            sum += ((float)arr[i]/max)*100;
        }
        System.out.println(sum/n);
        
    }
}

 

 

!!  [점수/M * 100 ] 과정을 일일이 해주는게 아니라 마지막에 다 더해서 한 번에 계산해주면 더 간단해진다!!

 

수정한 코드 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class doit_002 {

    public static void main (String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] arr = new int[n];
        String a = br.readLine();
        StringTokenizer st = new StringTokenizer(a," ");
        int max = 0;
        float sum = 0;
    

        //총합에 변환 과정을 넣어주면 한 번에 가능 //do it 교재 39p
        for(int i = 0; i<n; i++){
            arr[i] = Integer.parseInt(st.nextToken());
            if(max < arr[i]) max = arr[i];
            sum += arr[i];
        }
        System.out.println(((float)sum/max*100)/n);
    }
}