• toc {:toc}

๋ฌธ์ œ ํ™•์ธํ•˜๊ธฐ

ํ’€์ด

image Fig1 image Fig2

  1. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŽ์ด ์žˆ๋Š” ์ชฝ์—์„œ ์ ์€ ์ชฝ์œผ๋กœ ์˜ฎ๊ธด๋‹ค๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
  2. ์ „์ฒด ๊ฐœ์ˆ˜์˜ ํ‰๊ท ์„ ํ†ตํ•ด ํ‰๊ท ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ ๋ถ€์กฑํ•œ ๊ฐœ์ˆ˜๋ฅผ ์„ผ๋‹ค.

Fig1์˜ ํ‰๊ท  = 4.xx ์ด๊ณ  ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ 4๊นŒ์ง€ ์ฑ„์šฐ๋Š” ๊ฐœ์ˆ˜๋Š” 5๊ฐ€ ๋œ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ์ˆ˜๋ฅผ ์…Œ๋Š”๋ฐ ๋ฐ˜๋ก€๊ฐ€ ์กด์žฌํ–ˆ๋‹ค.

4 3 3 3 9

์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅ์ด ์ฃผ์–ด์ง€๋Š” ๊ฒฝ์šฐ ํ‰๊ท  = 4.xx, ํ‰๊ท ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋ฅผ 4์— ๋งž์ถฐ์„œ ์ฑ„์šฐ๋ฉด ์›€์ง์ด๋Š” ์ปจํ…Œ์ด๋„ˆ ์ˆ˜๋Š” 3์ด๋‹ค. ํ•˜์ง€๋งŒ 3๊ฐœ๋งŒ ์›€์ง์ผ ๊ฒฝ์šฐ 9๊ฐœ๊ฐ€ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ์ˆ˜๊ฐ€ 6์ด ๋˜์–ด ์กฐ๊ฑด์— ๋งž์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

๊ฒฐ๊ตญ ํ‰๊ท ์น˜+1 ๋ณด๋‹ค ๋†’์€ ๊ฐœ์ˆ˜๋„ ํ™•์ธ์„ ํ•ด์ฃผ๊ณ  ๋‹ค๋ฅธ ์œ„์น˜๋กœ ์˜ฎ๊ฒจ์ค˜์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๋•Œ๋ฌธ์— ํ‰๊ท ์น˜ +1๋ณด๋‹ค ๋†’์€ ์ปจํ…Œ์ด๋„ˆ ๊ฐœ์ˆ˜์™€ ํ‰๊ท ์น˜๋ณด๋‹ค ์ ์€ ๊ฐœ์ˆ˜ ์ค‘ ๊ฐœ์ˆ˜๊ฐ€ ๋” ๋งŽ์€ ๊ฒฝ์šฐ๋ฅผ ์„ ํƒํ•œ๋‹ค.

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
 
long long containers[1000005];
 
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
 
    long long n, sum = 0, res = 0;
 
    cin >> n;
 
    for(int i = 0; i < n; i++){
        cin >> containers[i];
        sum += containers[i];
    }
 
    int avg = sum / n;
 
    sum = 0;
    for(int i = 0; i < n; i++){
        if(containers[i] < avg){
            res += avg - containers[i];
        }
        else if(avg+1 < containers[i]){
            sum += containers[i] - (avg+1);
        }
    }
    if(sum > res){
        res = sum;
    }
    cout << res << endl;
 
    return 0;
}