https://www.acmicpc.net/problem/18110
๐ ํ์ด : ๋ฐฐ์ด
import java.io.*;
import java.util.*;
public class Main {
// ์ฌ์ฉ์๋ค์ด ์ด๋ค ๋ฌธ์ ์ ์ ์ถํ ๋์ด๋ ์๊ฒฌ ๋ชฉ๋ก์ด ์ฃผ์ด์ง ๋, solved.ac๊ฐ ๊ฒฐ์ ํ ๋ฌธ์ ์ ๋์ด๋๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ
public static void main(String[] args) throws IOException {
/* [1] ์
๋ ฅ ์ฒ๋ฆฌโจ */
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine()); // ๋์ด๋ ์๊ฒฌ์ ๊ฐ์ n (0 ≤ n ≤ 3 × 105)
// ๋์ด๋ ์๊ฒฌ์ด 0๊ฐ์ผ ๊ฒฝ์ฐ ๋ฐ๋ก 0 ์ถ๋ ฅ
if (n == 0) {
System.out.println(0); return;
}
// ๋์ด๋ ์๊ฒฌ๋ค์ ์ ์ฅํ ๋ฆฌ์คํธ
int[] difficulties = new int[n];
// ๋์ด๋ ์๊ฒฌ ์
๋ ฅ ๋ฐ๊ธฐ(1 ์ด์ 30 ์ดํ)
for (int i = 0; i < n; i++) {
difficulties[i] = Integer.parseInt(br.readLine());
} // while
/* [2] 30% ์ ์ฌํ๊ท ๊ณ์ฐโจ */
// ๋์ด๋ ์๊ฒฌ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
Arrays.sort(difficulties);
// ์์, ํ์ 15%์ ์๊ฒฌ ๊ฐ์ ๊ณ์ฐ (๋ฐ์ฌ๋ฆผ ์ฒ๋ฆฌ)
int trimCount = (int) Math.round(n * 0.15);
// ์์, ํ์ trimCount ๊ฐ์ ์ ์ธํ ์๊ฒฌ๋ค์ ํฉ์ ๊ณ์ฐ
int sum = 0;
for (int i = trimCount; i < n - trimCount; i++) {
sum += difficulties[i];
}
// ์ ํจํ ์๊ฒฌ์ ๊ฐ์ (์ ์ฒด์์ ์ํ์ 15%์ฉ ์ ์ธํ ๋๋จธ์ง)
int validCount = n - 2 * trimCount;
// ์ ์ฌํ๊ท ๊ณ์ฐ (์์์ ๋ฐ์ฌ๋ฆผ)
int result = (int) Math.round((double) sum / validCount);
/* [3] ๊ฒฐ๊ณผ ์ถ๋ ฅโจ */
System.out.println(result);
}
}
'๐ท์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/Java] 1929 ์์ ๊ตฌํ๊ธฐ(์๋ผํ ์คํ ๋ค์ค์ ์ฒด) (0) | 2024.10.06 |
---|---|
[๋ฐฑ์ค/Java] 10866 ๋ฑ (0) | 2024.10.06 |
[๋ฐฑ์ค/Java] 10845 ํ (0) | 2024.10.06 |
[๋ฐฑ์ค/Java] 10816 ์ซ์ ์นด๋ 2 (0) | 2024.10.06 |