Lavida 2796 다이빙 점수 매기기

1 분 소요

문제 설명

주형이는 한국 다이빙협회의 공정한 판정을 위해 점수 집계 시스템을 고치기로 하였다. 주형이가제안한 아이디어는 다음과 같다. 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

라이비다도 이제 업로드 시작!

댓글남기기