N

(SWEA c++)5603. [Professional] 건초더미 본문

SW Expert Academy

(SWEA c++)5603. [Professional] 건초더미

naeunchan 2020. 10. 5. 13:17
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXGEbd6cjMDFAUo&categoryId=AWXGEbd6cjMDFAUo&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

N만큼 담을 수 있는 int형 배열 arr을 전역변수로 선언해둔다.

입력받은 t만큼 반복.

N개의 건초더미의 합을 구하기 위한 sum,

각 건초더미에 들어갈 수 있는 건초의 개수인 div,

옮기는 횟수를 나타내는 ans 변수를 선언.

 

두번째 for문에서

N개의 건초더미의 합을 sum에 넣어주도록 한다.

 

div 변수에 sum / N을 해주어 각 건초더미에 들어갈 수 있는 건초의 개수를 구하도록 하자.

 

마지막으로 arr배열을 돌면서 현재 건초더미에 들어가 있는 수가 div보다 작으면 옮겨야하므로 ans += div - arr[j]를 해주어

값을 구하면 된다.

#include <iostream>

using namespace std;

int arr[10001];

int main(void)
{
    int t;
    cin >> t;
    
    for(int i = 1; i <= t; i++)
    {
        int sum = 0, N, div, ans = 0;
        cin >> N;
        
        for(int j = 0; j < N; j++)
        {
            cin >> arr[j];
            sum += arr[j];
        }
        
        div = sum / N;
        
        for(int j = 0; j < N; j++)
        {
            if(arr[j] < div)
                ans += (div - arr[j]);
        }
        
        cout << "#" << i << " " << ans << endl;
    }
    return 0;
}
            
728x90
반응형