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