체조 선수의 점수 구해주기
문제 설명
체조 선수는 여러 심사위원의 점수 중 가장 높은 점수 하나와 가장 낮은 점수 하나를 제외하고 나머지 점수들의 평균을 계산하여 최종 점수를 받습니다. 단, 이때 소수점 이하의 수는 버립니다.
각 심사위원이 매긴 점수가 담긴 배열 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까지 반복하여 answer에 scroes 배열의 원소들을 모두 더한다.
answer = answer - max - min) scores 배열의 총 합이 들어있는 answer에 max와 min만큼 뺀다.
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);
}
구름 goormedu COS PRO 2급 기출문제 - C언어
[3차] 문제3) 체조 선수의 점수 구해주기
'코딩 테스트 > [c언어] cos pro 2급 기출문제' 카테고리의 다른 글
[No.25] 여행객의 총 교통비 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.15 |
---|---|
[No.24] 단어의 오타 수정하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.14 |
[No.22] 장학생 수 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.13 |
[No.21] 학생의 등수 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.13 |
[No.20] 상품권 총 지급액 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.12 |
댓글