본문 바로가기

cospro2급/cospro_5차

2021-05-24 / 4번 문제

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

 

문제 설명

종목은 태권도, 500m 달리기, 사격 경기를 하려 한다. 종목별 점수 산출 방식은 다음과 같다. 

태권도에서 승리한 횟수 , taekwondo, 달리기 기록 running, 사격 기록이 담긴 배열 shooting, 배열 shooting의 길이 shooting_len이 매개변수로 주어질 때 이 선수가 획득한 총점수를 return 하는 solution 함수를 완성한다. 

 

매개변수 설명

태권도에서 승리한 횟수 , taekwondo, 달리기 기록 running, 사격 기록이 담긴 배열 shooting, 배열 shooting의 길이 shooting_len이 매개변수로 주어진다.

  태권도에서는 0회 이상 35회 이하 승리할 수 있다.

  달리기 기록은 초 단위이며 40 이상 120 이하인 정수이다.

  사격 과녁에는 0부터 10까지의 숫자가 적혀있다.

  shooting_len은 항상 10이다.

 

return 값 설명

이 선수가 획득한 총점수를 return 한다.

 

예시

 

예시 설명

태권도에서 25회 이상 승리했기 때문에 250점을 획득했다.

달리기에서 60초보다 3초 느렸기 때문에 250점에서 15점을 밴 235점을 획득했다.

사격에서 과녁을 맞춰 94점을 받았고, 10점을 7번 맞췄기 때문에 추가 점수 100점을 받아 총 194점을 획득했다.

따라서 이 선수가 받은 총점수는 679점이다.

 

 

코드 설명

#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;	//25경기 이상 승리하면 250점
    else
        answer += taekwondo * 8;	//그외에는 승리당 8점

    answer += 250 + (60 - running) * 5;	//60초보다 빠르면 1초당 5점을 더하고 아니면 5점을 뺌

    int count = 0;
    for(int i = 0; i < shooting_len; i++) {
        answer += shooting[i];	//과녁에 적힌 숫자의 합
        if(shooting[i] == 10)	//10점인 점수 카운트
            count++;
    }
    if(count >= 7)
        answer += 100;	//7개 이상 10점이면 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);
}

 

 

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

'cospro2급 > cospro_5차' 카테고리의 다른 글

2021-05-25 / 5번 문제  (0) 2021.05.25
2021-05-25 / 6번 문제  (0) 2021.05.25
2021-05-24 3번 문제  (0) 2021.05.24
2021-05-23 / 1번 문제  (0) 2021.05.23
2021-05-23 / 2번 문제  (0) 2021.05.23