본문 바로가기

cospro2급/cospro_1차

2021-05-07

cospro 10번 문제

평균 이하의 개수 구하기

 

문제 설명

평균이란 자료의 합을 자료의 개수로 나눈 값을 의미한다.

자연수가 들어있는 배열의 평균을 구하고, 평균 이하인 숫자는 몇개 있는지 구하려 한다.

예를 들면 주어진 배열이 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]이라면, 평균은 5.5이므로 배열에서 평균 이하의 값은 5개 이다.

자연수가 들어있는 배열 data와 data의 길이 data_len이 매개변수로 주어질 때, 배열에 평균 이하의 값은 몇 개인지 return하도록  solution함수를 완성한다.

 

매개변수 설명

자연수가 들어있는 배열 data와 data의 길이 data_len이 solution함수의 매개변수로 주어진다.

data_len은 10 이상 100 이하의 자연수이다.

data의 원소는 1 이상 1000 이하의 자연수이다.

 

return 값 설명

평균보다 값이 작은 자연수는 몇개인지 return 한다.

 

예시 

예시설명

예제 1)의 자료의 합은 55이며, 자료의 개수는 10개이다. 따라서 평균은 55 / 10 = 5.5이다. 주어진 배열에서 5.5보다 작은 숫자는 총 5개이다.

예제 2)의 자료의 합은 19이며, 자료의 개수는 10개이다. 따라서 평균은 19 / 10 = 1.9이다. 주어진 배열에서 1.9보다 작은 숫자는 총 9개이다. 

 

코드설명

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int data[], int data_len) {
    double total = 0; //총합
    for(int i = 0; i < data_len; i++)
        total += data[i]; //배열 원소의 값을 total에 넣어준다.
    int cnt = 0; //평균 이하인 자료의 갯수
    double average = total/ data_len; //평균은 총합 / 자료의 개수 이다.
    for(int i = 0; i < data_len; i++)
        if(data[i] <= average) //배열 원소의 값이 평균보다 작으면 ++한다.
            cnt += 1;
    return cnt;
}

int main() {
    int data1[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int data_len1 = 10;
    int ret1 = solution(data1, data_len1);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret1);

    int data2[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 10};
    int data_len2 = 10;
    int ret2 = solution(data2, data_len2);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret2);
}

평균을 구하는 방법은 총합을 자료의 개수로 나누는 것이다. 

 

edu.goorm.io/learn/lecture/16921/cos-pro-2%EA%B8%89-%EA%B8%B0%EC%B6%9C%EB%AC%B8%EC%A0%9C-c%EC%96%B8%EC%96%B4/lesson/817993/1%EC%B0%A8-%EB%AC%B8%EC%A0%9C10-%ED%8F%89%EA%B7%A0-%EC%9D%B4%ED%95%98%EC%9D%98-%EA%B0%9C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0

'cospro2급 > cospro_1차' 카테고리의 다른 글

2021-05-07  (0) 2021.05.07
2021-05-06  (0) 2021.05.06
2021-05-06  (0) 2021.05.06
2021-05-05  (0) 2021.05.05
2021-05-05  (0) 2021.05.05