๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/6986)
< ์ ์ฌํ๊ท >
๋ฌธ์ ํ์ด
์์ชฝ์์ k๊ฐ๋ฅผ ์ ์ธํ ๊ฐ๋ค์ ๋ํ ํ ์ ์ฌํ๊ท ์ ๊ตฌํ๋ค. ์์ชฝ์ k๊ฐ๋ฅผ ๋จ์ ์ ์ ์ค ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ผ๋ก ๊ต์ฒดํ ํ ๋ณด์ ํ๊ท ์ ๊ตฌํ๋ค.
์ฒ์์๋ doubleํ์ ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์์ง๋ง ๋ถ๋์์์ ์ ๋ถ์ ํ์ฑ์ผ๋ก ์ ํํ ๋ต์ ๊ตฌํ ์ ์์๋ค. ๊ทธ๋์ BigDecimal์ ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.StringTokenizer;
public class _6986_ { // ์ ์ฌํ๊ท
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
BigDecimal arr[] = new BigDecimal[n];
for (int i = 0; i < n; i++) {
arr[i] = new BigDecimal(bf.readLine());
}
Arrays.sort(arr);
// ์ ์ฌ ํ๊ท
BigDecimal sum = BigDecimal.ZERO;
for (int i = k; i < n - k; i++) {
sum=sum.add(arr[i]);
}
BigDecimal result=sum.divide(new BigDecimal(n - (2 * k)), 2, BigDecimal.ROUND_HALF_UP);
bw.write(result+"\n");
// ๋ณด์ ํ๊ท
for (int i = 0; i < k; i++) {
sum=sum.add(arr[k]);
sum=sum.add(arr[n-k-1]);
}
result= sum.divide(new BigDecimal(n),2, BigDecimal.ROUND_HALF_UP);
bw.write(result+"");
bw.flush();
}
}
๋ณ์)
n, k : ์ ์ฒด ์ ์์ ๊ฐ์, ์ ์ธ๋๋ ์ ์์ ๊ฐ์
arr : ์ ์
sum : ํฉ
result : ์ ์ฌ ํ๊ท , ๋ณด์ ํ๊ท
์ ์ฒด ์ ์์ ๊ฐ์์ ์ ์ธ๋๋ ์ ์์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๊ฐ ์ฌํ์ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ arr์ ์ ์ฅํ๋ค. ์ ์ฌํ๊ท ๊ณผ ๋ณด์ ํ๊ท ์ ๊ตฌํ๊ธฐ ์ํด arr์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
์ ์ฌ ํ๊ท ์ ๊ตฌํ๊ธฐ ์ํด ์์ชฝ ๋์ k๊ฐ๋ฅผ ์ ์ธํ ๊ฐ์ ๋ํ๋ค. ๋ํ ๊ฐ์ n-(2*k) ๊ฐ๋ก ๋๋๊ณ ์์์ ์ดํ ์ ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ ๊ฐ์ ์ถ๋ ฅํ๋ค.
๋ณด์ ํ๊ท ์ ์ ์ฌ ํ๊ท ์ ๊ตฌํ๊ธฐ ์ํด ๊ตฌํ๋ ํฉ์์ ์๋์ k๊ฐ๋ฅผ ๋จ์ ์ ์ ์ค ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ผ๋ก ๋์ฒดํด์ ๋ํ๋ค. ๋ํ ๊ฐ์ n๊ฐ๋ก ๋๋๊ณ ์์์ ์ดํ ์ ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ ๊ฐ์ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 8911_๊ฑฐ๋ถ์ด (1) | 2024.02.16 |
---|---|
[Baekjoon] 1918_ํ์ ํ๊ธฐ์ (0) | 2024.02.15 |
[Baekjoon] 2312_์ ๋ณต์ํ๊ธฐ (2) | 2024.02.13 |
[Baekjoon] 14225_๋ถ๋ถ์์ด์ ํฉ (0) | 2024.02.12 |
[Baekjoon] 10451_์์ด ์ฌ์ดํด (0) | 2024.02.09 |