์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/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๋งŒํผ ๋ชจ๋‘ ๋ฐ˜๋ณตํ•œ ํ›„ ๋ฒ„ํผ์— ๋‚จ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅ

 

java
๋‹ซ๊ธฐ
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(); โ€Œ} }