문제

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

 

풀이

방법1. 

처음에는 입력을 받으면서 최대값을 구하고,

입력된 모든 값을 점수/M*100으로 고치면서 총합을 구해서 평균을 구했는데 이렇게 되면 for문을 2번 돌게 된다.

방법2.

어차피 (A/M*100+B/M*100+C/M*100)/3 = (A+B+C)/M*100 이니까 for문 한번에 해줄 수 있었다. (2번째 방법)

 

Java Code (방법1)

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

public class boj_002_1546 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        double[] score = new double[N];
        double max = Double.MIN_VALUE;
        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < score.length; i++) {
            score[i] = Double.valueOf(st.nextToken());
            max = Math.max(score[i],max);
        }
        double sum = 0.0;
        double[] changedScore = new double[N];
        for (int i = 0; i < score.length; i++) {
            changedScore[i] = score[i]/max*100;
            sum +=changedScore[i];
        }

        System.out.println(sum/N);
    }
}

Java Code (방법2)

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

public class boj_002_1546_2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        double[] score = new double[N];
        double max = Double.MIN_VALUE;
        double sum = 0.0;
        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < score.length; i++) {
            score[i] = Double.valueOf(st.nextToken());
            max = Math.max(score[i],max);
            sum += score[i];
        }
        double answer = sum/max*100/N;


        System.out.println(answer);
    }
}

 

+ Recent posts