본문 바로가기
코딩 테스트/[c언어] cos pro 2급 기출문제

[No.60] 6차 문제 10 / cos pro 2급 c언어 기출 문제

by M개발자 2021. 5. 30.
반응형

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);
}

cos pro 2급 기출문제

github

 

구름 goormedu COS PRO 2급 기출문제 - C언어

반응형

댓글