[5차] 문제3. 벌금을 세금내듯 내면 안되요. 벌금 구하기! 답안 및 풀이
◇ 문제 설명
모든 속도위반 차량이 낼 벌금이 총 몇 만원인지 알아내려 합니다. 벌금을 매기는 기준은 다음과 같습니다.
예를 들어 규정속도가 100인 도로를 112로 달렸다면 규정 속도를 12% 위반하였습니ㅏㄷ. 따라서 규정 속도를 10%이상 20%미만 위반하였으므로 벌금 3만원을 부과합니다.
기준 벌금 규정 속도 10% 이상 20% 미만 위반 3만원 규정 속도 20% 이상 30% 미만 위반 5만원 규정 속도 30% 이상 7만원
규정 속도 speed, 도로를 달리는 모든 차의 속도가 담긴 배열 cars, 배열 cars의 길이 cars_len이 매개변수로 주어질때, 총 벌금은 몇 만원인지 return하도록 solution함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
◇ 매개변수 설명
규정 속도 speed, 도로를 달리는 모든 차의 속도가 담긴 배열 cars, 배열 cars의 길이 cars_len이 solution함수의 매개변수로 주어집니다.
▶ 규정속도는 30이상 140이하이며, 10으로 나누어 떨어지는 숫자입니다.
▶ cars_len은 1이상 40이하인 자연수입니다.
▶ 모든 차는 0km/h 이상 200km/h 이하로 달립니다.
◇ return값 설명
도로에서 달리는 모든 차의 벌금은 총 몇만원인지 return해주세요
◇ 예시
speed | cars | cars_len | return |
100 | [110, 98, 125, 148, 120, 112, 89] | 7 | 23 |
◇ 예시 설명
기준 | 위반 차량 | 총벌금 |
규정 속도 10% 이상 20% 미만 위반 | 2대 | 6만원 |
규정 속도 20% 이상 30% 미만 위반 | 2댜 | 10만원 |
규정 속도 30% 이상 | 1대 | 7만원 |
◇ 초기 내용
◇ 답안
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int speed, int cars[], int cars_len) {
int answer = 0;
for(int i = 0; i < cars_len; i++) {
if(cars[i] >= speed * 11 / 10 && cars[i] < speed * 12 / 10)
answer += 3;
else if(cars[i] >= speed * 12 / 10 && cars[i] < speed * 13 / 10)
answer += 5;
else if(cars[i] >= speed * 13 / 10)
answer += 7;
}
return answer;
}
int main() {
int speed = 100;
int cars[] = {110, 98, 125, 148, 120, 112, 89};
int cars_len = 7;
int ret = solution(speed, cars, cars_len);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
◇ 답안 힌트
▶ for문 안의 if문 조건인 speed * 11 / 10은 규정속도 10%를 나타냅니다.
▶ 문제 내의 조건을 잘 확인하세요
◇ 답안 풀이
(※ 실행 흐름 순으로 해석됩니다.)
int solution(int speed, int cars[], int cars_len) {
int answer = 0;
for(int i = 0; i < cars_len; i++) {
if(cars[i] >= speed * 11 / 10 && cars[i] < speed * 12 / 10)
answer += 3;
// speed * 12 / 10 = speed * (12/10)과 같다.
// 12/10 = 120/100으로, 규정 속도 100%보다 20%큰 값을 나타낸다.
// 만약, 규정속도보다 20%이상, 30%미만 빠르면 5만원을 더한다
else if(cars[i] >= speed * 12 / 10 && cars[i] < speed * 13 / 10)
answer += 5;
// 만약, 규정속도보다 30%이상 빠르면 7만원을 더한다
else if(cars[i] >= speed * 13 / 10)
answer += 7;
}
return answer;
}
◇ 실행결과
◇ 출처
COS PRO 2급 기출문제 - C언어 - 구름EDU
YBM IT에서 시행하는 COS Pro 자격증 기출문제를 직접 풀어볼 수 있는 실습 위주의 강좌입니다.
edu.goorm.io