우선 건초더미들의 크기 합을 건초더미의 개수로 나눠 같게 만든 건초더미의 크기가 얼마인지 구한다.
그리고 입력받은 건초더미들의 크기에서 같게 만든 건초더미의 크기를 뺀 절대값의 합을 저장하고 마지막에 나누기 2를 하면 답이다.
왜냐하면 같게 만든 건초더미의 크기보다 큰 경우에는 건초더미의 개수를 빼야 하고 같게 만든 건초더미의 크기보다 작은 경우에는 건초더미의 개수를 더해야 하는데, 건초더미를 빼서 다른 건초더미에 더하는 두 작업이 하나의 이동 과정이 되므로 나누기 2를 해주는 것이다.
#include <iostream>
#include <ios>
using namespace std;
int N, hays[10000], totalHays;
int getResult();
int main() {
cin.tie(0); ios::sync_with_stdio;
int T; cin >> T;
for (int tc = 1; tc <= T; tc++) {
totalHays = 0;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> hays[i];
totalHays += hays[i];
}
cout << '#' << tc << ' ' << getResult() << "\n";
}
return 0;
}
int getResult() {
int cnt = 0;
int sameHays = totalHays / N;
for (int i = 0; i < N; i++) cnt += abs(sameHays - hays[i]);
return cnt / 2;
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 7728. 다양성 측정 (0) | 2019.06.29 |
---|---|
[SWEA] 6692. 다솔이의 월급 상자 (*소수점 자릿 수 조정) (0) | 2019.05.07 |
[SWEA] 3142. 영준이와 신비한 뿔의 숲 (0) | 2019.05.06 |
[SWEA] 7102. 준홍이의 카드놀이 (0) | 2019.05.06 |
[SWEA] 2805. 농작물 수확하기 (0) | 2019.05.06 |
댓글