์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step5] 4344 : ํ‰๊ท ์€ ๋„˜๊ฒ ์ง€ (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 9. 20:56

www.acmicpc.net/problem/4344

 

4344๋ฒˆ: ํ‰๊ท ์€ ๋„˜๊ฒ ์ง€

๋Œ€ํ•™์ƒ ์ƒˆ๋‚ด๊ธฐ๋“ค์˜ 90%๋Š” ์ž์‹ ์ด ๋ฐ˜์—์„œ ํ‰๊ท ์€ ๋„˜๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๋“ค์—๊ฒŒ ์Šฌํ”ˆ ์ง„์‹ค์„ ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

๋Œ€ํ•™์ƒ ์ƒˆ๋‚ด๊ธฐ๋“ค์˜ 90%๋Š” ์ž์‹ ์ด ๋ฐ˜์—์„œ ํ‰๊ท ์€ ๋„˜๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๋“ค์—๊ฒŒ ์Šฌํ”ˆ ์ง„์‹ค์„ ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

๋‘˜์งธ ์ค„๋ถ€ํ„ฐ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ํ•™์ƒ์˜ ์ˆ˜ N(1 ≤ N ≤ 1000, N์€ ์ •์ˆ˜)์ด ์ฒซ ์ˆ˜๋กœ ์ฃผ์–ด์ง€๊ณ , ์ด์–ด์„œ N๋ช…์˜ ์ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ ์ˆ˜๋Š” 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

๊ฐ ์ผ€์ด์Šค๋งˆ๋‹ค ํ•œ ์ค„์”ฉ ํ‰๊ท ์„ ๋„˜๋Š” ํ•™์ƒ๋“ค์˜ ๋น„์œจ์„ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์†Œ์ˆ˜์  ์…‹์งธ ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ

5

5 50 50 70 80 100

7 100 95 90 80 70 60 50

3 70 90 80

3 70 90 81

9 100 99 98 97 96 95 94 93 91

 

์˜ˆ์ œ ์ถœ๋ ฅ 

40.000%

57.143%

33.333%

66.667%

55.556%


ํ’€์ด

1. ํ…Œ์ŠคํŠธ์ผ€์ด์Šค num์„ ์ž…๋ ฅ๋ฐ›๊ณ  num์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต

2. ํ•™์ƒ์˜ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ํ•™์ƒ์˜ ์ˆ˜๋งŒํผ ํฌ๊ธฐ์˜ ๋ฐฐ์—ดsnum์„ ์ƒ์„ฑํ•ด ์ ์ˆ˜๋ฅผ ์ €์žฅ. ์ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋ฉด์„œ total ์— ๋”ํ•จ

3. ์ด ํ•ฉ์„ ํ•™์ƒ ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ํ‰๊ท ์„ ๊ณ„์‚ฐํ•˜๊ณ , ํ‰๊ท ๊ณผ snum์„ ๋น„๊ตํ•˜์—ฌ ํ‰๊ท ๋ณด๋‹ค ๋†’์€ ์ ์ˆ˜๋ฅผ ๊ฐ€์ง„ ํ•™์ƒ ์ˆ˜๋ฅผ count ์— ์ €์žฅ

4. ๋น„์œจ์„ ๊ณ„์‚ฐํ•ด์„œ ์†Œ์ˆ˜์  ์…‹์งธ์ž๋ฆฌ๊นŒ์ง€ ๋ฒ„ํผ์— ์ €์žฅ

    => format() ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ

5. num๋งŒํผ ๋ชจ๋‘ ๋ฐ˜๋ณตํ•œ ํ›„ ๋ฒ„ํผ์— ๋‚จ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅ

 

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Scanner;

public class B4344 {

	public static void main(String[] args) throws IOException {

		Scanner sc = new Scanner(System.in);
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int num = sc.nextInt();
		
		for(int i = 0; i < num; i++) {
			int snum = sc.nextInt();
			int count = 0;
			double total = 0;
			double[] score = new double[snum];
			for(int j = 0; j < snum; j++) {
				score[j] = sc.nextInt();
				total += score[j];		
			}
			double avg = (double)total / (double)snum;
			for(int j = 0; j < snum; j++) { 
				if(score[j] > avg) {
					count++;
				}
			}
			double ratio = ((double)count / (double)snum) * 100 ; 
			String s = String.format("%.3f", ratio);
			bw.write(s + "%\n");
		}

		bw.flush();
		bw.close();
	}

}