선수가 획득한 점수를 구해주세요. (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);
}
'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 |