๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜

[Java] BOJ 1546 ํ‰๊ท 

by ๐ŸŠ๊ทค๐ŸŠ 2024. 7. 11.

๋ฌธ์ œ 

๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/1546

  • ์„ธ์ค€์ด๊ฐ€ ์ž๊ธฐ ์ ์ˆ˜ ์ค‘์— ์ตœ๋Œ“๊ฐ’์„ ๊ณจ๋ž๋‹ค. ์ด ๊ฐ’์„ M์ด๋ผ๊ณ  ํ•œ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ๋ชจ๋“  ์ ์ˆ˜๋ฅผ ์ ์ˆ˜/M*100์œผ๋กœ ๊ณ ์ณค๋‹ค. 
  • ์ฒซ์งธ ์ค„์— ์‹œํ—˜ ๋ณธ ๊ณผ๋ชฉ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 1000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.
  • ๋‘˜์งธ ์ค„์— ์„ธ์ค€์ด์˜ ํ˜„์žฌ ์„ฑ์ ์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜์ด๊ณ , ์ ์–ด๋„ ํ•˜๋‚˜์˜ ๊ฐ’์€ 0๋ณด๋‹ค ํฌ๋‹ค.
  • ์ฒซ์งธ ์ค„์— ์ƒˆ๋กœ์šด ํ‰๊ท ์„ ์ถœ๋ ฅํ•œ๋‹ค. ์‹ค์ œ ์ •๋‹ต๊ณผ ์ถœ๋ ฅ๊ฐ’์˜ ์ ˆ๋Œ€์˜ค์ฐจ ๋˜๋Š” ์ƒ๋Œ€์˜ค์ฐจ๊ฐ€ 10-2 ์ดํ•˜์ด๋ฉด ์ •๋‹ต์ด๋‹ค.

์•„์ด๋””์–ด

  • ์ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด์„œ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๊ณ , ์ฐพ์€ ์ตœ๋Œ“๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ์ ์ˆ˜๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š” ์‹์„ ์งœ๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. 
  • ํ’€๋ฉด์„œ ํ•œ๊ฐ€์ง€ ์ฃผ์˜ํ•œ๊ฑด ์†Œ์ˆ˜์ ๊นŒ์ง€ ๋‚˜์™€์•ผ๋˜๋ฏ€๋กœ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ double๋กœ ์ •์˜ํ•œ ๊ฒƒ์ด๋‹ค. 

๊ฒช์€ ์‹œํ–‰์ฐฉ์˜ค

  • X

์‰ฌ์›Œ์„œ ์ข‹๋‹ค ใ…Žใ…Ž

์ฝ”๋“œ

import java.io.*;
import java.util.*;

public class BOJ1546 {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());

        StringTokenizer st = new StringTokenizer(br.readLine());

        // ์ ์ˆ˜ ์ €์žฅํ•  ๋ฐฐ์—ด
        int scores[] = new int[N];

        // ์‹œํ—˜ ์ ์ˆ˜ ์ตœ๋Œ“๊ฐ’ ์ €์žฅํ•  ๋ณ€์ˆ˜
        int max_score = Integer.MIN_VALUE;

        // ์ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด์„œ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๊ณ  ๋ฐฐ์—ด์— ์ €์žฅ
        for(int i = 0; i < N; i++){
            int s = Integer.parseInt(st.nextToken());

            if(s > max_score){
                max_score = s;
            }

            scores[i] = s;
        }

        double result = 0;

        // ์ตœ๋Œ“๊ฐ’์œผ๋กœ ์‹œํ—˜์ ์ˆ˜ ๋‹ค์‹œ ๊ณ„์‚ฐ ํ›„ ๋‹ค ๋”ํ•˜๊ธฐ
        for(int i = 0; i < N; i++){
            result = result + (((double)scores[i]/max_score) * 100);
        }

        // ๊ณผ๋ชฉ์ˆ˜๋งŒํผ ๋‚˜๋ˆ ์„œ ํ‰๊ท ๊ฐ’ ๊ณ„์‚ฐ
        result = (double)result / N;

        System.out.println(result);
    }
}