본문 바로가기
코딩 테스트/[c언어] cos pro 2급 기출문제

[No.23] 체조 선수의 점수 구해주기 / cos pro 2급 c언어 기출 문제

by M개발자 2021. 5. 14.
반응형

체조 선수의 점수 구해주기


문제 설명

 

체조 선수는 여러 심사위원의 점수 중 가장 높은 점수 하나와 가장 낮은 점수 하나를 제외하고 나머지 점수들의 평균을 계산하여 최종 점수를 받습니다. 단, 이때 소수점 이하의 수는 버립니다.

 

각 심사위원이 매긴 점수가 담긴 배열 scores와 scores의 길이 scores_len이 매개변수로 주어질 때, 이 선수가 받은 점수를 return 하도록 solution 함수를 작성하세요. 

 


예시

 

  scores scores_len return
예시 1 [35, 28, 98, 34, 20, 50, 85, 74, 71, 7] 10 49
예시 2 [1, 1, 1, 1] 5 1

 


코드 해석 및 전체 코드

 

answer) 체조 선수의 총 점수로 return 할 값

 

max, min) 체조 선수의 점수 중 최댓값과 최솟값이며, 배열 내에서 구할 때는 보통 배열 0번째를 초기값으로 준다.

 

for문 1) 0 ~ scroes_len - 1까지 반복한다. 

if문 1) 최댓값을 구하는 if문으로 scores[i]가 max보다 클 경우 max값에 대입한다.

if문 2) 최솟값을 구하는 if문으로 scores[i]가 min보다 작을 경우 min값에 대입한다.

 

ret1

최댓값

i max < scores[i] max
0 35 < 35 
X
35
1 35 < 28
X
35
2 35 < 98
O
98
3 98 < 34
X
98
4 98 < 20
X
98
5 98 < 50
X
98
6 98 < 85
X
98
7 98 < 74
X
98
8 98 < 71
X
98
9 98 < 7
X
98

 

최솟값

i min > scores[i] min
0 35 > 35 
X
35
1 35 > 28
O
28
2 28 > 98
X
28
3 28 > 34
X
28
4 28 > 20
O
20
5 20 > 50
X
20 
6 20 > 85
X
20 
7 20 > 74
X
20 
8 20 > 71
X
20 
9 20 > 7
O
7

 

for문 2) 0 ~ scores_len - 1까지 반복하여 answerscroes 배열의 원소들을 모두 더한다.

 

answer = answer - max - min) scores 배열의 총 합이 들어있는 answermaxmin만큼 뺀다.

 

answer /= (scores_len - 2)) 구하려는 값은 평균값이므로 최댓값과 최솟값을 뺀 배열의 길이인 scores_len - 2로 answer를 나눈다. 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int scores[], int scores_len) {
	int answer = 0;
	int max = scores[0];
	int min = scores[0];
	for (int i = 0; i < scores_len; i++) {
		if (scores[i] > max) max = scores[i];
		if (scores[i] < min) min = scores[i];
	}

	for (int i = 0; i < scores_len; i++) {
		answer += scores[i];
	}

	answer = answer - max - min;
	answer /= (scores_len - 2);

	return answer;
}
int main() {
	int scores1[10] = { 35, 28, 98, 34, 20, 50, 85, 74, 71, 7 };
	int scores1_len = 10;
	int ret1 = solution(scores1, scores1_len);

	printf("solution 함수의 반환 값은 %d 입니다.\n", ret1);

	int scores2[5] = { 1, 1, 1, 1, 1 };
	int scores2_len = 5;
	int ret2 = solution(scores2, scores2_len);

	printf("solution 함수의 반환 값은 %d 입니다.\n", ret2);
}

cos pro 2급 기출문제

github

 

구름 goormedu COS PRO 2급 기출문제 - C언어

[3차] 문제3) 체조 선수의 점수 구해주기

반응형

댓글