๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 6986_์ ˆ์‚ฌํ‰๊ท 

๋ฟŒ์•ผ._. 2024. 2. 14. 17:46

Silver III

๋ฌธ์ œ(์ถœ์ฒ˜: 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๊ฐœ๋กœ ๋‚˜๋ˆ„๊ณ  ์†Œ์ˆ˜์  ์ดํ•˜ ์…‹์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•œ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.