반응형
6차 문제 10
문제 설명
불량 사과 상자가 몇 박스인지 알아보려 합니다. 사과 한 박스의 표준 무게는 weight이며, 표준 무게와 비교해 무게가 오차 10% 이내인 사과 박스는 정상품으로, 오차가 그보다 많은 사과 박스는 불량품으로 판정합니다.
표준 무게 weight와 판정해야 할 사과 상자의 무게가 담긴 배열 boxes, boxes의 길이 boxes_len이 매개변수로 주어질 때, 불량품 개수를 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
예시
weight | boxes | boxes_len | return |
600 | [653, 670, 533, 540, 660] | 5 | 2 |
코드 해석 및 전체 코드
answer는 불량 사과 상자의 총 개수로, 정상품의 조건은 무게의 ±10%이다.
예시의 weight는 600으로 정상품의 조건은 540 <= x <= 660이다.
즉 불량 사과 상자는 540 미만이거나 660을 초과하나는 상자이다.
for문을 boxes_len만큼 반복하여
boxes[i]가 weight * 0.9(= 600 * 0.9 = 540)보다 작거나
boxes[i]가 wieght * 1.1(= 600 * 1.1 = 660)보다 클 경우
불량 상자이므로 answer를 1 증가한다.
두 조건 중 한 가지 조건을 만족할 경우이므로 || 연산자를 사용한다.
i | boxes[i] | boxes[i] < weight * 0.9 | boxes[i] > weight * 1.1 | answer |
0 | 653 | X | X | |
1 | 670 | X | O | answer++ |
2 | 533 | O | X | answer++ |
3 | 540 | X | X | |
4 | 660 | X | X |
두 가지 조건 중 하나를 만족하는 boxes[]는 2개 이므로 총 불량 박스는 2개이다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int weight, int boxes[], int boxes_len) {
int answer = 0;
for (int i = 0; i < boxes_len; i++)
if (boxes[i] < weight * 0.9 || boxes[i] > weight * 1.1)
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);
}
구름 goormedu COS PRO 2급 기출문제 - C언어
반응형
'코딩 테스트 > [c언어] cos pro 2급 기출문제' 카테고리의 다른 글
[No.59] 6차 문제 9 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.30 |
---|---|
[No.58] 6차 문제 8 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.30 |
[No.57] 6차 문제 7 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.30 |
[No.56] 6차 문제 6 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.30 |
[No.55] 6차 문제 5 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.30 |
댓글