3. 여행
친구끼리 여행을 다녀와서 쓴 돈을 공평하게 재분배하고 싶다.
1센트 단위 내에서 쓴 돈이 같아지도록 하기 위해서 이동해야 하는 최소한의 돈의 액수는 몇인가?
입력
3
10.00
20.00
30.00
4
15.00
15.01
3.00
3.01
출력
10.00
11.99
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int n; int* pay; float* input; while (true) { scanf("%d", &n); if (n == 0) break; pay = (int*)malloc(sizeof(int) * n); input = (float*)malloc(sizeof(float) * n); float sum = 0; for (int i = 0; i < n; i++) { scanf("%f", &input[i]); pay[i] = input[i] * 100; sum += pay[i]; } int avg = sum / n; int positive = 0; int negative = 0; int result = 0; for (int i = 0; i < n; i++) { int d = avg - pay[i]; if( d > 0) positive += d; else negative += d; } if (positive < -negative) result = positive; else result = -negative; printf("%0.2f\n", result / 100.0f); } return 1; } | cs |
'#DevStudy > 문제풀이' 카테고리의 다른 글
[Baekjoon] 2579 - 계단오르기 (0) | 2016.10.11 |
---|---|
[Baekjoon] 1149 - RGB (0) | 2016.10.11 |
[P.C] 2. 지뢰찾기 (Minesweeper) (0) | 2016.09.23 |
[Baekjoon] 5393 콜라츠 (0) | 2016.09.22 |
[P.C] 1. 3n+1 문제 (0) | 2016.09.22 |
댓글