cospro 2급 2번 문제
시험 합격자가 몇명이지?
문제 설명
체력시험 합격 인원을 알아보려 한다. 체력시험 종목으로는 윗몸일으키기, 팔굽혀펴기, 달리기가 있다. 종목별 합격 기준은 다음과 같다.
매개변수 설명
return 값 설명
시험에 합격한 인원을 return 한다.
예시
예시 설명
1번째 사람은 윗몸일으키기 30점, 팔굽혀펴기 40점으로 합격 점수의 반을 통과하지 못해 불합격이다.
2번째 사람은 윗몸일으키기 97점, 팔굽혀펴기 88점, 달리기 95점으로 모두 통과하여 합력이다. 따라서 총 1명이 합격했다.
1번째, 2번째, 3번째, 6번째 사람이 합격 기준을 만족하여 총 4명이 합격했다.
코드 설명
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
//통과한 종목이 하나보다 많고 통과 점수의 반을 넘기지 못한 종목이 없으면 통과한 인원으로 셈
int func_a(int passed, int non_passed) {
return (passed > 1 && non_passed == 0);
}
//통과 점수의 반을 넘기지 못한 종목이 몇 개인지 셈
int func_b(int scores[3]) {
int answer = 0;
if(scores[0] < 40) {
answer++;
}
if(scores[1] < 44) {
answer++;
}
if(scores[2] < 35) {
answer++;
}
return answer;
}
//통과한 종목이 몇 개인지 셈
int func_c(int scores[3]) {
int answer = 0;
if(scores[0] >= 80) {
answer++;
}
if(scores[1] >= 88) {
answer++;
}
if(scores[2] >= 70) {
answer++;
}
return answer;
}
int solution(int scores[][3], int scores_len) {
int answer = 0;
for(int i = 0; i<scores_len; i++) {
int passed = func_c(scores[i]);
int non_passed = func_b(scores[i]);
answer += func_a(passed,non_passed);
}
return answer;
}
int main() {
int scores1[2][3] = {
{30, 40, 100},
{97, 88, 95}
};
int ret1 = solution(scores1, 2);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret1);
int scores2[6][3] = {
{90, 88, 70},
{85, 90, 90},
{100, 100, 70},
{30, 90, 80},
{40, 10, 20},
{83, 88, 80}
};
int ret2 = solution(scores2, 6);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret2);
}
'cospro2급 > cospro_4차' 카테고리의 다른 글
2021-05-20 (0) | 2021.05.20 |
---|---|
2021-05-20 (0) | 2021.05.20 |
201-05-19 (0) | 2021.05.19 |
2021-05-19 (0) | 2021.05.19 |
2021-05-18 (0) | 2021.05.18 |