๐Ÿ’  BOJ/Class 2

[BOJ][C++] ๋ฐฑ์ค€ 18110๋ฒˆ: solved.ac (Silver IV)

์„ ๋‹ฌ 2024. 11. 8. 06:08
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

solved.ac๋Š” Sogang ICPC Team ํ•™ํšŒ์›๋“ค์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€์— ๋„์›€์„ ์ฃผ๊ณ ์ž ๋งŒ๋“  ์„œ๋น„์Šค์ด๋‹ค. ์ง€๊ธˆ์€ ์„œ๊ฐ•๋Œ€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ˆ˜๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด solved.ac์˜ ๋„์›€์„ ๋ฐ›์•„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค.

ICPC Team์€ ๋ฐฑ์ค€ ์˜จ๋ผ์ธ ์ €์ง€์—์„œ ๋ฌธ์ œํ’€์ด๋ฅผ ์—ฐ์Šตํ•˜๋Š”๋ฐ, ๋ฐฑ์ค€ ์˜จ๋ผ์ธ ์ €์ง€์˜ ๋ฌธ์ œ๋“ค์—๋Š” ๋‚œ์ด๋„ ํ‘œ๊ธฐ๊ฐ€ ์—†์–ด์„œ, ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด ๋ณด๊ณ  ์‹ถ๋”๋ผ๋„ ๋‚œ์ด๋„๋ฅผ ๊ฐ€๋Š ํ•˜๊ธฐ ์–ด๋ ค์›Œ ๋ฌด์Šจ ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ ํ• ์ง€ ํŒ๋‹จํ•˜๊ธฐ ๊ณค๋ž€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— solved.ac๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๋‹ค. solved.ac๊ฐ€ ์ƒ๊ธด ์ดํ›„ ์ „๊ตญ์—์„œ 200๋ช… ์ด์ƒ์˜ ๊ธฐ์—ฌ์ž ๋ถ„๋“ค๊ป˜์„œ ์†Œ์ค‘ํ•œ ๋‚œ์ด๋„ ์˜๊ฒฌ์„ ๊ณต์œ ํ•ด ์ฃผ์…จ๊ณ , ์ง€๊ธˆ์€ ์•ฝ 7,000๋ฌธ์ œ์— ๋‚œ์ด๋„ ํ‘œ๊ธฐ๊ฐ€ ๋ถ™๊ฒŒ ๋˜์—ˆ๋‹ค.
์–ด๋–ค ๋ฌธ์ œ์˜ ๋‚œ์ด๋„๋Š” ๊ทธ ๋ฌธ์ œ๋ฅผ ํ‘ผ ์‚ฌ๋žŒ๋“ค์ด ์ œ์ถœํ•œ๋‚œ์ด๋„ ์˜๊ฒฌ์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค. ๋‚œ์ด๋„ ์˜๊ฒฌ์€ ๊ทธ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ๊ฐํ•œ ๋‚œ์ด๋„๋ฅผ ์˜๋ฏธํ•˜๋Š” ์ •์ˆ˜ ํ•˜๋‚˜๋กœ ์ฃผ์–ด์ง„๋‹ค. solved.ac๊ฐ€ ์‚ฌ์šฉ์ž๋“ค์˜ ์˜๊ฒฌ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‚œ์ด๋„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์ ˆ์‚ฌํ‰๊ท ์ด๋ž€ ๊ทน๋‹จ์ ์ธ ๊ฐ’๋“ค์ด ํ‰๊ท ์„ ์™œ๊ณกํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ํฐ ๊ฐ’๋“ค๊ณผ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’๋“ค์„ ์ œ์™ธํ•˜๊ณ  ํ‰๊ท ์„ ๋‚ด๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. 30% ์ ˆ์‚ฌํ‰๊ท ์˜ ๊ฒฝ์šฐ ์œ„์—์„œ 15%, ์•„๋ž˜์—์„œ 15%๋ฅผ ๊ฐ๊ฐ ์ œ์™ธํ•˜๊ณ  ํ‰๊ท ์„ ๊ณ„์‚ฐํ•œ๋‹ค. ๋”ฐ๋ผ์„œ 20๋ช…์ด ํˆฌํ‘œํ–ˆ๋‹ค๋ฉด, ๊ฐ€์žฅ ๋†’์€ ๋‚œ์ด๋„์— ํˆฌํ‘œํ•œ 3๋ช…๊ณผ ๊ฐ€์žฅ ๋‚ฎ์€ ๋‚œ์ด๋„์— ํˆฌํ‘œํ•œ 3๋ช…์˜ ํˆฌํ‘œ๋Š” ํ‰๊ท  ๊ณ„์‚ฐ์— ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์ œ์™ธ๋˜๋Š” ์‚ฌ๋žŒ์˜ ์ˆ˜๋Š” ์œ„, ์•„๋ž˜์—์„œ ๊ฐ๊ฐ ๋ฐ˜์˜ฌ๋ฆผํ•œ๋‹ค. 25๋ช…์ด ํˆฌํ‘œํ•œ ๊ฒฝ์šฐ ์œ„, ์•„๋ž˜์—์„œ ๊ฐ๊ฐ 3.75๋ช…์„ ์ œ์™ธํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ ๋ฐ˜์˜ฌ๋ฆผํ•ด 4๋ช…์”ฉ์„ ์ œ์™ธํ•œ๋‹ค.
๋งˆ์ง€๋ง‰์œผ๋กœ, ๊ณ„์‚ฐ๋œ ํ‰๊ท ๋„ ์ •์ˆ˜๋กœ ๋ฐ˜์˜ฌ๋ฆผ๋œ๋‹ค. ์ ˆ์‚ฌํ‰๊ท ์ด 16.7์ด์—ˆ๋‹ค๋ฉด ์ตœ์ข… ๋‚œ์ด๋„๋Š” 17์ด ๋œ๋‹ค.
์‚ฌ์šฉ์ž๋“ค์ด ์–ด๋–ค ๋ฌธ์ œ์— ์ œ์ถœํ•œ ๋‚œ์ด๋„ ์˜๊ฒฌ ๋ชฉ๋ก์ด ์ฃผ์–ด์งˆ ๋•Œ, solved.ac๊ฐ€ ๊ฒฐ์ •ํ•œ ๋ฌธ์ œ์˜ ๋‚œ์ด๋„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ๋‚œ์ด๋„ ์˜๊ฒฌ์˜ ๊ฐœ์ˆ˜n์ด ์ฃผ์–ด์ง„๋‹ค. (0 ≤n≤ 3 × 105)
์ดํ›„ ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ 1 +n๋ฒˆ์งธ ์ค„๊นŒ์ง€ ์‚ฌ์šฉ์ž๋“ค์ด ์ œ์ถœํ•œ ๋‚œ์ด๋„ ์˜๊ฒฌn๊ฐœ๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ๋ชจ๋“  ๋‚œ์ด๋„ ์˜๊ฒฌ์€ 1 ์ด์ƒ 30 ์ดํ•˜์ด๋‹ค.

์ถœ๋ ฅ

solved.ac๊ฐ€ ๊ณ„์‚ฐํ•œ ๋ฌธ์ œ์˜ ๋‚œ์ด๋„๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

// ํ’€์ด : https://whkakrkr.tistory.com

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int getRounded(double num) {
    if(num - (int)num >= 0.5) {
        return (int)num + 1;
    } else {
        return (int)num;
    }
}

int main() {
    ios_base::sync_with_stdio(false);
	cout.tie(NULL);
	cin.tie(NULL);
	
	double n;
	cin >> n;
	vector<int>v(n);
	for(int i=0; i<n; i++) {
	    cin >> v[i];
	}
	
	sort(v.begin(), v.end());
	
	double sum = 0;
	int removed = getRounded(n*15/100);
	for(int i=removed; i<n-removed; i++) {
	    sum += v[i];
	}
	
	int len = n - (2*removed);
	int ans = n==0 ? 0 : getRounded(sum/len);
	cout << ans;
    
    return 0;
}
๋ฐ˜์‘ํ˜•