알고리즘/BOJ

백준 5919번 Hay Bales

꾸준함. 2018. 8. 28. 15:36

문제 링크입니다: https://www.acmicpc.net/problem/5919


간단하게 해석하자면 모든 건초더미들의 높이가 같게 하려면 건초더미들을 몇번 움직여야하는지 구하는 문제였습니다.


알고리즘은 아래와 같습니다.

1. 우선 건초더미들의 개수 평균을 구합니다.

2. 결국 평균보다 높이 쌓여있는 건초더미들에서 낮은 건초더미들로 옮겨야하므로 평균보다 얼마나 높은지의 누적합을 구하면 됩니다.


#include <iostream>

using namespace std;

 

const int MAX = 10000;

 

int N;

int hay[MAX];

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0); //cin 실행속도 향상

        cin >> N;

 

        int sum = 0;

        for (int i = 0; i < N; i++)

        {

                 cin >> hay[i];

                 sum += hay[i];

        }

 

        int average = sum / N; //평균

 

        int result = 0;

        for (int i = 0; i < N; i++)

                 if (hay[i] > average)

                         result += hay[i] - average;

 

        cout << result << "\n";

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 11721번 열 개씩 끊어 출력하기  (0) 2018.08.28
백준 10818번 최소, 최대  (0) 2018.08.28
백준 1922번 네트워크 연결  (0) 2018.08.28
백준 10740번 ACM  (0) 2018.08.21
백준 10739번 KRIZA  (0) 2018.08.21