본문 바로가기
Cospro 2급/C언어

[6차] 문제3. 단체 유니폼 맞추기 답안 및 풀이

by SRin23 2021. 5. 30.

◇ 문제 설명

단체 유니폼을 주문하려고 합니다. 사람들의 덩치를 수치로 표현할 때 주문해야 하는 유니폼의 사이즈는 다음과 같습니다.

덩치 사이즈
95미만 S
95이상 100미만 M
100이상 105미만 L
105이상 XL

사람들의 덩치를 담은 배열 people, people의 길이 people_len이 매개변수로 주어질때, 주문해야 하는 유니폼 사이즈의 수를 [S, M, L, XL]순으로 배열에 담아 return하도록 solution함수를 작성해주세요.

 

◇ 매개변수 설명

사람들의 덩치를 담은 배열 people, people의 길이 people_len이 solution함수의 매개변수로 주어집니다.
 ▶ people_len은 1이상 100이하인 자연수입니다.
 ▶ 사람들의 덩치는 880이상 120이하인 자연수입니다.

 

◇ return값 설명

주문해야 하는 유니폼 사이즈의 수를 [S, M, L, XL]순으로 배열에 담아 return합니다.

 

◇ 예시

people people_len return
[97, 102, 93, 100, 107] 5 [1, 1, 2, 1]

 

◇ 예시 설명

3번째 사람은 S사이즈를 입어야 합니다.
1번째 사람은 M사이즈를 입어야 합니다.
2, 4번째 사람은 L사이즈를 입어야 합니다.
5번째 사람은 XL사이즈를 입어야 합니다.

 

◇ 초기 내용

[출처]goormedu COSPRO 2급 기출문제 [6차] 문제3 초기내용

 


◇ 답안

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

int* solution(int people[], int people_len) {
    int *answer = (int *) malloc(sizeof(int) * 4);
    memset(answer, 0, sizeof(int) * 4);
    
		for(int i = 0; i<people_len; i++){
			if(people[i]<95)
				answer[0]++;
			else if(people[i]<100)
				answer[1]++;
			else if(people[i]<105)
				answer[2]++;
			else
				answer[3]++;
		}
    return answer;
}

int main() {
    int people[] = {97, 102, 93, 100, 107};
    int people_len = 5;
    int *ret = solution(people, people_len);

    printf("solution 함수의 반환 값은 [");
    for(int i = 0; i < 4; i++) {
        if(i != 0)
            printf(", ");
        printf("%d", ret[i]);
    }
    printf("] 입니다.\n");
}

 

◇ 답안 힌트

    ▶ 유니폼의 사이즈에 맞춰 S, M, L, XL의 개수를 구하세요

    ▶ answer[0]은 S, answer[1]은 M, answer[2]는 L, answer[3]은 XL을 나타낸다.

 

◇ 답안 풀이

(※ 실행 흐름 순으로 해석됩니다.)

int* solution(int people[], int people_len) { 
    int *answer = (int *) malloc(sizeof(int) * 4); 

    // answer의 0번 인덱스 부터 sizeof(int)*4인덱스 까지의 값을 0으로 초기화
    memset(answer, 0, sizeof(int) * 4);
     

    //answer[0]은 S, answer[1]은 M, answer[2]는 L, answer[3]은 XL을 나타낸다.
    for(int i = 0; i<people_len; i++){

        //만약 사이즈가 95 미만이면 answer[0]에 +1
        if(people[i]<95) 
            answer[0]++; 

        //만약 사이즈가 95 이상 100미만이면 answer[1]에 +1
        else if(people[i]<100) 
            answer[1]++; 

        //만약 사이즈가 100 이상 105미만이면 answer[2]에 +1

        else if(people[i]<105) 
            answer[2]++; 

        //만약 사이즈가 105 이상이면 answer[3]에 +1
        else 
            answer[3]++; 
    } 
    return answer; 
}

 

 

◇ 실행결과

[6차] 문제3) 단체 유니폼 맞추기 실행결과

 

◇ 출처

https://edu.goorm.io/learn/lecture/16921/cos-pro-2%25EA%25B8%2589-%25EA%25B8%25B0%25EC%25B6%259C%25EB%25AC%25B8%25EC%25A0%259C-c%25EC%2596%25B8%25EC%2596%25B4

 

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

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

edu.goorm.io

 

댓글