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

[No.44] 선수가 획득한 점수를 구해주세요. (feat.전투민족) / cos pro 2급 c언어 기출문제

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

선수가 획득한 점수를 구해주세요. (feat. 전투민족)


문제 설명

종목 점수 산출 방식
태권도 25경기 이상 승리하면 250점, 그 외에는 승리당 8점
500m 달리기 60초에 완주 시 250점 그보다 빠르면 1초당 +5점 느리면 1초당 -5점 
사격 10번 사격해 과녁에 적힌 숫자의 합만큼 점수 획득.
7번 이상 10점에 맞추면 추가 점수 100점 

선수가 획득한 총점수를 return 하도록 solution함수를 작성하세요. 


예시

taekwondo running shooting shooting_len return
27 63 {9, 10, 8, 10, 10, 10, 7, 10, 10, 10} 10 679  

코드 해석 및 전체 코드

 

태권도 점수 구하기 

25경기 이상 승리하면 점수는 250점, 그 외에는 승리당 8점이다. 
if 문에서 teakwondo가 25 이상인지 판별하고 25 이상일 시 answer에 250을 더한다. 
25 미만이라면 승리당 8점이므로 teakwondo * 8한 점수를 answer에 더한다. 

500m 달리기 점수 구하기

60초에 완주 시 250점으로 250 + (60 - 60) * 5 = 250 + 0 = 250
60초보다 빠르면 1초당 5점으로 임의의 수 55로 한다면 250 + (60 - 55) * 5 = 250 + 25 = 275
60초보다 느리면 1초당 -5점으로 임의의 수 65로 한다면 250 + (60 - 65) * 5 = 250 + (-25) = 225

사격 점수 구하기

10번 사격해 과녁에 적힌 숫자의 합만큼 점수를 획득한다. 
for문을 10번 반복해 사격한 점수를 모두 더한다. 
그리고 10점인 점수가 몇개인지 구한다. (count++)

7번 이상 10점에 맞추면 추가 점수 100점을 주기에 
count가 7 이상이면 answer에 100을 더한다. 

 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int taekwondo, int running, int shooting[], int shooting_len) {
    int answer = 0;

	//태권도 점수 구하기 
    if (taekwondo >= 25)
        answer += 250;
    else
        answer += taekwondo * 8;

	//500m 달리기 점수 구하기 
    answer += 250 + (60 - running) * 5;

	//사격 점수 구하기 
    int count = 0;
    for (int i = 0; i < shooting_len; i++) {
        answer += shooting[i];
        if (shooting[i] == 10)
            count++;
    }
    if (count >= 7)
        answer += 100;

    return answer;
}
int main() {
    int taekwondo = 27;
    int running = 63;
    int shooting[] = { 9, 10, 8, 10, 10, 10, 7, 10, 10, 10 };
    int shooting_len = 10;
    int ret = solution(taekwondo, running, shooting, shooting_len);

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

cos pro 2급 기출문제

github

 

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

 

[5차] 문제4) 선수가 획득한 점수를 구해주세요. (feat.전투민족)

반응형

댓글