티스토리 뷰
□문제설명
단체 유니폼을 주문하려고 합니다. 사람들의 덩치를 수치로 표현할 때 주문해야 하는 유니폼의 사이즈는 다음과 같습니다.
덩치 | 사이즈 |
95 미만 | S |
95 이상 100 미만 | M |
100 이상 105 미만 | L |
105 이상 | XL |
사람들의 덩치를 담은 배열 people, people의 길이 people_len이 매개변수로 주어질 때, 주문해야 하는 유니폼 사이즈의 수를 [S,M,L,XL]순으로 배열에 담아 return하도록 solution함수를 작성해주세요.
□매개변수 설명
사람들의 덩치를 담은 배열 people, people의 길이 people_len이 매개변수로 주어집니다.
- people_len은 1이상 100이하인 자연수입니다.
- 사람들의 덩치는 80 이상 120 이하인 자연수입니다.
□예시
people | people_len | return |
[97, 102, 93, 100, 107] | 5 | [1,1,2,1] |
□주어진 코드
더보기
더보기
#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);
//빈칸
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");
}
□완성 코드
#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");
}
□코드 분석
단계 | 과정 |
main | 사람들의 덩치를 담은 배열 people과 그 길이를 선언한다. 포인터변수 ret(return값이 배열이기 때문)을 선언하고 solution함수를 호출한다. |
solution | malloc를 사용하여 return값 answer의 메모리를 동적할당하고, memset함수를 이용하여 answer의 메모리를 0으로 세팅한다. 이때 answer에는 사이즈(순서대로 S,M,L,XL)별 티셔츠 갯수가 들어간다. |
solution - for | 사람의 수만큼 for문을 반복시킨다. people[i]값에는 사람들의 덩치값이 들어있다. 이때 if - else if문을 사용하여 각 사이즈의 범위별로 answer의 각 방을 ++한다. 예를 들어 people[i]의 값이 102라면, else if(people[i]<105)문에서 answer[2]++;이 진행된다. 이때 answer[2]는 L사이즈의 티셔츠 갯수를 세는 방이다. |
solution | 배열 answer를 return한다. |
main | ret(solution의 answer배열과 동일)값을 출력하고 프로그램을 종료한다. |
COS PRO 2급 기출문제 - C언어 - 구름EDU
YBM IT에서 시행하는 COS Pro 자격증 기출문제를 직접 풀어볼 수 있는 실습 위주의 강좌입니다.
edu.goorm.io
'[코테] > [GroomEdu]' 카테고리의 다른 글
[COS PRO 2급] 6차 5번_음료수 마시기 (빈병으로 음료수를 사세요!) (C/C++) (0) | 2021.05.29 |
---|---|
[COS PRO 2급] 6차 4번_카드뽑기 게임! (도박은 안되요!) (C/C++) (0) | 2021.05.29 |
[COS PRO 2급] 6차 2번_종이 나누어 주기 (C/C++) (0) | 2021.05.28 |
[COS PRO 2급] 6차 1번_저는 따뜻한 날이 좋아요 (C/C++) (0) | 2021.05.28 |
[COS PRO 2급] 5차 10번_가장 오래 일한 사람을 구해주세요 (C/C++) (0) | 2021.05.28 |
댓글
공지사항
최근에 올라온 글
TAG
- 배열
- 코딩테스트
- 코스프로
- cospro기출
- C
- lv2
- 구름에듀 기출문제
- 구름 기출문제
- 구름에듀
- 기출문제
- cospro기출문제
- C++
- c언어
- 1급
- groomedu
- groom
- 자바
- c언어 기출문제
- 배열활용문제
- lv1
- 알고리즘
- YBM기출
- Cos Pro
- COSPRO 2급
- programmers
- CosPro
- 프로그래머스
- YBM
- 연습문제
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함