https://www.acmicpc.net/problem/6986
์ฝ๋
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static double []dArr;
public static int N;
public static int K;
// ์ ์ฌ ํ๊ท
public static String julsa(int num) {
double avg = 0;
double sum = 0;
String result = "";
for(int i=num; i<dArr.length-num; i++) // ์, ๋ค num๊ฐ์ฉ ์ ์ธ
sum += dArr[i];
avg = sum / (dArr.length-(num*2)); // ์ ๋ค num๊ฐ์ฉ ์ ์ธํ ํ๊ท
result = String.format("%.2f", avg);
return result;
}
// ๋ณด์ ํ๊ท
public static String bojung(int num) {
double avg = 0;
double sum = 0;
String result = "";
// ์์์ num๊ฐ๋ฅผ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ผ๋ก ๊ต์ฒดํ๊ธฐ.
// ex) num=2 -> ์์์ 2๊ฐ๋ฅผ 3๋ฒ์งธ ๊ฐ์ผ๋ก ๊ต์ฒด
for(int i=0; i<num; i++)
dArr[i] = dArr[num];
// ๋ค์์ num๊ฐ๋ฅผ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ผ๋ก ๊ต์ฒดํ๊ธฐ
// ex) num=2 -> ๋ค์์ 2๊ฐ๋ฅผ ๋ค์์ 3๋ฒ์งธ ๊ฐ์ผ๋ก ๊ต์ฒด
for(int i=dArr.length-1; i>=dArr.length-num; i--)
dArr[i] = dArr[dArr.length-num-1];
for(int i=0; i<dArr.length; i++)
sum += dArr[i];
avg = sum / dArr.length; // ํ๊ท
result = String.format("%.2f", avg);
return result;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
N = scan.nextInt(); // ์ ์์ ๊ฐ์
K = scan.nextInt(); // ์ ์ธ๋๋ ์ ์๊ฐ์
dArr = new double[N];
for(int i=0; i<N; i++) {
dArr[i] = scan.nextDouble();
}
Arrays.sort(dArr); // ์ ๋ ฌ
String jul = julsa(K); // ์ ์ฌ ํ๊ท
String bo = bojung(K); // ๋ณด์ ํ๊ท
System.out.println(jul);
System.out.println(bo);
scan.close();
}
}
ํ์ด
๋ฌธ์ ์ ๋ง๊ฒ ์ ์ฌํ๊ท ๊ณผ ๋ณด์ ํ๊ท ์ ๊ตฌํด์ฃผ๋ฉด ๋๋ค.
์ ์ฌํ๊ท - ์, ๋ค K๋ช ์ ์ธํ ๋๋จธ์ง ํ์์ ํ๊ท ์ด๋ค.
N = 7, K = 2์ผ๋...
0 1 2 3 4 5 6
์์์ 2, 3, 4 3๋ช ์ ํ๊ท ๋ง ํ์ํ๋ฏ๋ก
for๋ฌธ์์ i=K๋ถํฐ, i<N-K ๋งํผ ๋ฐ๋ณตํด์ ํ๊ท ์ ๊ตฌํ๋ค.
๋ณด์ ํ๊ท - ์, ๋ค์์ ๊ฐ๊ฐ K๋ช ๋งํผ ๊ฐ์ฅ ์ธ์ ํ ์ ์๋ก ๊ต์ฒดํ๋ค.
N = 7, K = 2 ์ผ๋...
0 1 2 3 4 5 6
0 1 ํ์์ ํ์ 2์ ์ฑ์ ์ผ๋ก ๊ต์ฒดํ๊ณ ,
5 6 ํ์์ ํ์ 4์ ์ฑ์ ์ผ๋ก ๊ต์ฒดํ๋ฉด ๋๋ค.
* ๋ฌธ์ ์์ ์ถ๋ ฅํ์์ ์กฐ์ฌํด์ผ ํ๋ค.
result = sum / dArr.length; // ํ๊ท
result = Math.round(result*100)/100.0; // ์์ ์
์งธ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
return result;
์ฒ์์ ์์ ๊ฐ์ด Math.round() ํจ์๋ฅผ ํตํด ์ถ๋ ฅํ์ง๋ง ํ๋ ธ๋ค๊ณ ๋์๋ค.
N์ด 100,000 ์ดํ์ ์์ฐ์์ฌ์ ์ค์ฐจ?ํธ์ฐจ ๊ฐ ์๋ค๊ณ ํด์ String.format() ํ์์ผ๋ก ์ถ๋ ฅํ๋ AC !
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 15650๋ฒ: N๊ณผ M (2) (dfs, ๋ฐฑํธ๋ํน) (0) | 2020.02.18 |
---|---|
[๋ฐฑ์ค] 15649๋ฒ: N๊ณผ M (1) (dfs, ๋ฐฑํธ๋ํน) (0) | 2020.02.18 |
[Codeforces] 791A: Bear and Big Brother (0) | 2020.02.13 |
[๋ฐฑ์ค] 1931๋ฒ: ํ์์ค๋ฐฐ์ (๊ทธ๋ฆฌ๋, ์ ๋ ฌ) (0) | 2020.02.12 |
[๋ฐฑ์ค] 2468๋ฒ: ์์ ์์ญ(์์ ํ์, ๊ทธ๋ํ) (0) | 2020.02.12 |
๋๊ธ