티스토리 뷰

 

 

문제 설명

불량 사과 상자가 몇 박스인지 알아보려 합니다. 사과 한 박스의 표준 무게는 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이 매개변수로 주어집니다.

  • 표준 무게는 500 이상 10,000 이하입니다.
  • 표준 무게는 항상 10으로 나누어 떨어집니다.
  • 판정해야 할 사과 상자의 무게는 400 이상 12,000 이하입니다.
  • boxes_len은 1 이상 20 이하입니다.

예시

weight boxes boxes_len return
600 [653,670,533,540,660] 5 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(		)				//빈칸
        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);
}

 

 

 

 

 

 

 

 

완성 코드

#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(weight*1.1<boxes[i]||weight*0.9>boxes[i])
        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);
}

 

 

 

 

 

 

 

코드 분석

단계 과정
main 표준 무게 weight, 판정해야 할 사과 상자의 무게가 담긴 배열 boxes과 그 길이를 선언한다.
solution함수를 호출한다.
solution 불량품의 갯수를 셀 변수 answer를 선언한다.
solution - for 박스의 갯수만큼 반복한다.
박스 무게의 오차범위가 10%인지 검사하기 위해서
if(weight*1.1<boxes[i]||weight*0.9>boxes[i])조건을 통과하는지 판별한다.

오차범위 10%이내가 아니라면 불량품으로 판정되기 때문에, 표준 무게의 90%~110% 사이의 값인지 검사하는 것이다.

if문을 통과한다면 해당 상자가 불량품이므로 answer++를 진행한다.
solution answer를 return한다.
main 결과값(answer) ret를 출력한 후 프로그램을 종료한다.

 

 

 

 

 

 

 

 

 


 

 

GroomEdu

 

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

YBM IT에서 시행하는 COS Pro 자격증 기출문제를 직접 풀어볼 수 있는 실습 위주의 강좌입니다.

edu.goorm.io

 

댓글