평균을 넘은 작업자 비율
문제
한 공방은 작업이 끝날 때마다 기록을 한 줄씩 남긴다. 각 기록에는 그 작업에 참여한 작업자의 수와, 작업자마다 만든 물건의 개수가 적혀 있다. 작업에 참여한 작업자의 수는 기록마다 다르다.
공방 주인은 기록마다 작업자들이 만든 개수의 평균을 구하고, 그 평균보다 많이 만든 작업자가 전체의 몇 퍼센트인지 알고 싶다. 평균은 그 기록에 적힌 개수를 모두 더해 작업자의 수로 나눈 값이고, 나누어떨어지지 않으면 소수가 된다. 평균을 넘은 작업자의 비율은 그런 작업자의 수를 작업자의 수로 나눈 뒤 100을 곱한 값이다. 평균과 똑같이 만든 작업자는 평균을 넘은 것으로 세지 않는다.
총 T개의 기록이 주어졌을 때, 기록마다 평균을 넘은 작업자의 비율을 차례대로 출력하는 프로그램을 작성하여라.
예를 들어 T=2개의 기록이 주어졌다고 해보자. 첫 번째 기록은 작업자가 2명이고 만든 개수가 차례대로 98개, 43개다. 두 번째 기록은 작업자가 4명이고 만든 개수가 차례대로 25개, 89개, 3개, 67개다. 기록마다 합과 평균을 구하고 평균을 넘은 작업자를 찾아 보면 다음의 표와 같다.
| 기록 번호 | 작업자 수 | 만든 개수 | 합 | 평균 | 평균을 넘은 개수 | 넘은 작업자 수 |
|---|---|---|---|---|---|---|
| 1 | 2 | 98, 43 | 141 | 70.5 | 98 | 1 |
| 2 | 4 | 25, 89, 3, 67 | 184 | 46 | 89, 67 | 2 |
첫 번째 기록에서는 2명 가운데 1명이 평균을 넘었으므로 비율은 50퍼센트다. 두 번째 기록에서는 4명 가운데 2명이 평균을 넘었으므로 비율도 50퍼센트다. 두 값을 소수점 아래 셋째 자리까지 적으면 다음과 같다.
| 기록 번호 | 1 | 2 |
|---|---|---|
| 비율 | 50.000% | 50.000% |
한편 작업자가 1명뿐인 기록이라면 그 한 사람이 만든 개수가 곧 평균이 된다. 평균과 똑같이 만든 작업자는 세지 않으므로 평균을 넘은 작업자는 없고, 비율은 0.000%가 된다.
입출력 예시
예시 1
입력
2 2 98 43 4 25 89 3 67
출력
50.000% 50.000%
예시 2
입력
1 1 19
출력
0.000%
예시 3
입력
3 30 32 55 4 3 81 39 56 6 66 40 57 95 10 19 86 40 93 14 67 37 77 28 71 15 35 77 55 1 21 90 5 72 16 37 10 9 31 94 97 99 38 86 24 61 59 25 70 14 35 32 71 38 75 22 94 14 7 14 16 97 72 84 22 77 64 41 2 31
출력
46.667% 40.000% 48.387%
입력 조건
가장 먼저 기록의 수 T가 첫째 줄에 주어진다. T는 1 이상 20 이하의 자연수다.
이어서 T개의 줄에 걸쳐 각 기록이 차례대로 주어진다. 각 줄에는 그 작업에 참여한 작업자의 수 n이 먼저 주어지고, 그 뒤에 n명이 만든 물건의 개수가 공백을 두고 차례대로 주어진다. 곧 한 줄에 놓이는 수는 모두 n+1개다. n은 1 이상 50 이하의 자연수이고, 만든 개수는 0 이상 100 이하의 정수다.
출력 조건
T개의 줄을 출력한다. i번째 줄에는 i번째 기록에서 평균을 넘은 작업자의 비율을 적는다. 비율은 소수점 아래 셋째 자리까지 적고, 소수점 아래 넷째 자리에서 반올림한다. 값의 뒤에는 백분율 기호를 하나 붙인다. 비율이 0이어도 자리를 생략하지 않고 0.000% 꼴로 적는다.
요구사항
- 입력은 표준 입력으로 받고 답은 표준 출력으로 내보냅니다
- 각 기록의 첫 수는 작업자의 수이고, 만든 개수가 아닙니다
- 평균과 똑같이 만든 작업자는 평균을 넘은 것으로 세지 않습니다
- 비율은 소수점 아래 셋째 자리까지 적고 뒤에
%를 붙입니다.0.000%처럼 자리를 채워야 합니다 - 채점은 출력을 기대값과 글자 하나까지 견줍니다
- 표준 입력으로 읽고 표준 출력으로 내보내는 프로그램을 짜야 합니다
- 쓸 수 있는 말은 파이썬, 자바스크립트입니다
- 메모리 제한은 256MB입니다. 브라우저에서는 재지 않고 적기만 합니다
- 시간 제한은 출제자의 정답 코드를 같은 런타임에서 재서 정합니다
- 이 문제는 프롬프트가 아니라 코드를 냅니다. 그 코드는 이 기기의 브라우저에서 돌고, 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다. 실행 시간은 각자 기기가 적어 보내는 값이라, 코드와 기기 정보를 순위표에 같이 내걸어 둡니다.
- 케이스는 15개이고, 그 가운데 3개는 입력과 기대 출력을 함께 보여 줍니다. 나머지는 제출할 때만 쓰이고 화면에는 보여 주지 않습니다.
- 케이스 15개를 전부 통과해야 해결입니다.
예시
공개 케이스 3개입니다. 채점에는 숨은 케이스가 함께 쓰입니다. 케이스 15개를 전부 통과해야 해결입니다.
1 1 19
0.000%
2 2 98 43 4 25 89 3 67
50.000% 50.000%
3 30 32 55 4 3 81 39 56 6 66 40 57 95 10 19 86 40 93 14 67 37 77 28 71 15 35 77 55 1 21 90 5 72 16 37 10 9 31 94 97 99 38 86 24 61 59 25 70 14 35 32 71 38 75 22 94 14 7 14 16 97 72 84 22 77 64 41 2 31
46.667% 40.000% 48.387%
풀이
코드는 이 기기에서돕니다. 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다.
제출은 로그인 하셔야 됩니다. 공개 케이스로 돌려보는 것은 로그인 없이도 됩니다.
공개 케이스 3개로 돌려보기가 됩니다. 제출하면 숨은 케이스까지 돕니다.
이 문제를 푼 사람
아직 없습니다. 첫 번째가 되실 수 있습니다.