본문 바로가기

알고리즘/Java

(JAVA) 백준 알고리즘 6단계 1546번 : 평균

 

 

소스1.  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        double max = 0
        double avg = 0;
        double sum = 0;
        int num = scan.nextInt();
        double[] arr = new double[num];
        for (int i = 0; i<num; i++) {
            arr[i] = scan.nextInt();
        }
        for (int i = 0; i<arr.length; i++) {
            if (arr[i] > max)
                max = arr[i];
        }
        for (int i = 0; i<arr.length; i++) {
            arr[i] = arr[i] / max * 100;
            sum += arr[i];
        }
        avg = sum/num;
        System.out.println(avg);
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
cs

똑같은 소스에 BufferReader로 풀려하는데 게속 런타임오류가 나서 포기. 왜일까, 흠....

 

 

소스2. 또 Arrays.sort 사용 

다른 분 블로그에서 배운 메소드인데 배열에 꽤 많이 쓰이게된다. 배열 데이터 오름차순으로 정렬해줌

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        double max = 0;    // 최고점수
        double avg = 0;    // 합한 점수의 평균
        double sum = 0;    // 합한 점수
        int num = scan.nextInt();
        double[] arr = new double[num];
        for (int i = 0; i<num; i++) {
            arr[i] = scan.nextInt();
        }
        Arrays.sort(arr);
        for (int i = 0; i<arr.length; i++) {
            arr[i] = arr[i] / arr[arr.length-1]*100; // 배열 내 데이터값은 0부터 시작이니 arr.length-1은 배열의 마지막 데이터 값
            sum += arr[i];
        }
        avg = sum/num;
        System.out.println(avg);
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter