사과 박스 무게의 불량 검사
문제 설명
불량 사과 상자가 몇 박스인지 알아보려 한다. 사과 한 박스의 표준 무게는 weight이며, 표준 무게와 비교해 무게가 오차 10% 이내인 사과 박스는 정상품으로, 오차가 그보다 많은 사과 박스는 불량품으로 판정한다.
예를 들어 표준 무게가 600이라면 무게가 540 이상 660 이하인 사과 상자만 정상품이다. 판정해야할 사과 상자의 무게가 각각 [653, 670, 533, 540, 660]로 주어진다면 무게가 670, 533인 상자는 불량품이다. 따라서 주어진 상자 중 불량품은 2개이다.
표준 무게 weight와 판정해야 할 사과 상자의 무게가 담긴 배열 boxes, boxes의 길이 boxes_len이 매개변수로 주어질 때, 불량품의 개수를 return 하는 solution 함수를 완성한다.
매개변수 설명
표준 무게 weight와 판정해야할 사과 상자의 무게가 담긴 배열 boxes, boxes의 길이 boxes_len이 solution 함수의 매개변수로 주어진다.
표준 무게는 500 이상 10000 이하이다.
표준 무게는 항상 10으로 나누어 떨어진다.
판정해야 할 사과 상자의 무게는 400 이상 12000 이하이다.
boxes_len은 1 이상 20 이하이다.
return 값 설명
불량품의 개수를 return 한다.
예시
예시 설명
표준 무게가 600이라면 무게가 540 이상 660 이하인 사과 상자만 정상품이다. 판정해야할 사과 상자의 무게가 각각 [653, 670, 533, 540, 660]로 주어진다면 무게가 670, 533인 상자는 불량품이다. 따라서 주어진 상자 중 불량품은 2개이다.
코드 설명
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int weight, int boxes[], int boxes_len) {
int answer = 0; //불량품의 개수
int a=weight*9/10; //오차 범위 -10%
int b=weight*11/10; //오차범위 +10%
for(int i = 0; i < boxes_len; i++)
if(!(boxes[i]>=a && boxes[i]<=b)) //조건에 맞지 않으면 카운트
answer++;
return answer;
}
int main() {
int weight = 600;
int boxes[5] = {653, 670, 533, 540, 660};
int boxes_len = 5;
int ret = solution(weight, boxes, boxes_len);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
오차범위 10%는 원래의 무게 -10%, +10%라는 말이다. 즉 weight에서 10%를 뺀 90%, 10%를 더한 110%가 오차범위이다.
'cospro2급 > cospro_6차' 카테고리의 다른 글
2021-05-30 / 7번 문제 (0) | 2021.05.30 |
---|---|
2021-05-30 / 5번 문제 (0) | 2021.05.30 |
2021-05-29 / 8번 문제 (0) | 2021.05.30 |
2021-05-29 / 3번 문제 (0) | 2021.05.29 |
2021-05-28 / 2번 문제 (0) | 2021.05.28 |