Lavida 2796 다이빙 점수 매기기
문제 설명
주형이는 한국 다이빙협회의 공정한 판정을 위해 점수 집계 시스템을 고치기로 하였다. 주형이가제안한 아이디어는 다음과 같다. 7명의 심판이0점부터10점까지 정수의 점수를 주게 되는데, 그 중에서 최고점과 최저점을 뺀 나머지5명 점수를 이용하여 최종 점수를 매기려고 한다. 그런데 만약5명의 점수들 중 최고점과 최저점의 차이가5점 이상 나게 되면5명의 점수에서 최고점과 최저점을 다시 뺀 다음3명의 점수로 평균을 내서 최종 점수를 계산하고, 그렇지 않으면5명의 점수로 평균을 내서 최종 점수를 계산한다. 주형이를 도와주기 위해 7명 심판의 점수가 입력될 때 이 방식에 의해 최종 점수를 출력하는 프로그램을 작성하시오.
입력 설명
첫 번째 줄에 테스트케이스의 개수T(1 <= T <= 10)가 입력된다. 그 다음 줄에 7개의 정수(0 이상, 10 이하)가 한 줄씩 해서 모두 T 줄 입력된다.
출력 설명
각 테스트케이스 별로 최종 평균 점수를 한 줄씩 출력한다. 평균값 계산에서 소수점 이하는 버린다.
입력 예시
2
1 2 3 4 5 6 7
0 1 7 10 2 3 5
출력 예시
4
3
코드
#include <stdio.h>
int main() {
int a, arr[8],count = 0, result = 0;
int tmp, c, j;
scanf("%d", &a);
for (int i = 0; i < a; i++)
{
// 값을 받아오기
for (int i = 0; i < 7; i++)
{
scanf("%d", &arr[i]);
}
// 내림차순
for (c = 0; c < 7; c++)
{
for (j = 0; j < 6; j++)
{
if (arr[j] > arr[j + 1]) {
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
// 차이값
result = arr[6] - arr[0];
//차이값 비교후 출력
if (result > 5) {
for (int i = 2; i < 5; i++) {
count = count + arr[i];
}
printf("%d\n", count / 3);
}
else {
for (int i = 1; i < 6; i++) {
count = count + arr[i];
}
printf("%d\n", count / 5);
}
count = 0;
}
return 0;
}
나 : say
라이비다도 이제 업로드 시작!
댓글남기기