본문 바로가기

cospro2급/cospro_1차

2021-05-02

cospro 1번 문제

단체 티셔츠 주문하기

문제 설명

티셔츠 사이즈의 종류 : XS, S, M, L, XL, XXL

학생들의 티셔츠 사이즈 결과가 들어있는 배열 shirt_size배열의 길이인 shirt_size_len이 주어진다.

제일 작은 사이즈부터 몇개의 티셔츠가 필요한지 순서대로 배열에 담아 return하는 solution함수를 완성한다.

 

매개변수 설명

*shirt_size_len은 1 이상 100 이하의 자연수이다.

*shirt_size에는 치수를 나타내는 문자열 "XS", "S", "M", "L", "XL", "XXL"가 들어있다.

 

리턴값 설명

*return 하는 배열에는 ["XS" 개수, "S" 개수, "M" 개수, "L" 개수, "XL" 개수, "XXL" 개수] 순서로 들어있어야 한다.

 

 

로직 설명 

solution 함수는 call by pointer형식으로 배열을 전달 받는다. solution함수는 배열을 리턴해야하기 때문이다.

함수 안에서는 사이즈들을 확인한 후 다른 배열에 넣어 그 값을 누적한다. 

main()함수는 배열에 사이즈들을 저장하고 배열의 사이즈를 solution함수에 전달한다. 그후 전달 받은 배열을 

차례대로 출력한다.

 

코드 설명

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

int* solution(char* shirt_size[], int shirt_size_len) {
	int* answer; //리턴할 배열을 담는다.
	int arr[6]; //사이즈의 개수를 저장할 배열
	answer=arr; 
	for(int i=0; i<shirt_size_len; i++){
		if(shirt_size[i]=="XS") arr[0]++; //만약 사이즈가 XS면 0번방을 누적한다. 다른 것도 같다.
		else if(shirt_size[i]=="S") arr[1]++;
		else if(shirt_size[i]=="M") arr[2]++;
		else if(shirt_size[i]=="L") arr[3]++;
		else if(shirt_size[i]=="XL") arr[4]++;
		else  arr[5]++;
	}

	return answer;
}

int main() {
	char* shirt_size[] = {"XS", "S", "L", "L", "XL", "S"}; //사이즈
	int shirt_size_len = 6; //사이즈가 든 배열의 길이
	int* ret = solution(shirt_size, shirt_size_len); //함수 호출 

	printf("solution 함수의 반환 값은 {");
	for(int i = 0; i < 6; i++){
		if (i != 0) printf(", ");
		printf("%d", ret[i]); //전달 받은 배열을 순서대로 출력
	}
	printf("} 입니다.\n");
}
 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

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

2021-05-05  (0) 2021.05.05
2021-05-05  (0) 2021.05.05
2021-05-03  (0) 2021.05.03
2021-05-03  (0) 2021.05.03
2021-05-02  (0) 2021.05.02