반응형
6차 문제 3
문제 설명
단체 유니폼을 주문하려고 합니다. 사람들의 덩치를 수치로 표현할 때 주문해야 하는 유니폼의 사이즈는 다음과 같습니다.
덩치 | 사이즈 |
95 미만 | S |
95 이상 100 미만 | M |
100 이상 105 미만 | L |
105 이상 | XL |
사람들의 덩치를 담은 배열 people, people의 길이 people_len이 매개변수로 주어질 때, 주문해야 하는 유니폼 사이즈의 수를 [S, M, L, XL] 순으로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
예시
people | people_len | return |
[97, 102, 93, 100, 107] | 5 | [1, 1, 2, 1] |
코드 해석 및 전체 코드
반환할 값은 주문해야 하는 유니폼 사이즈의 개수가 담긴 배열이다.
배열로 넘겨야 하기 때문에 answer를 포인터 변수로, 4개의 길이로 잡는다. (사이즈 : S, M, L, XL)
for문은 people_len만큼 반복하여 덩치에 맞는 사이즈의 수를 구한다.
if문 첫번째 조건은 덩치가 105 이상으로, 조건에 맞으면 XL인 answer[3]을 1 증가한다.
if문 두 번째 조건은 덩치가 100 이상 105 미만(100 <= people [i] < 105)으로, 조건에 맞으면 L인 answer[2]을 1 증가한다.
if문 세 번째 조건은 덩치가 95 이상 100 미만(95 <= people [i] < 100)으로, 조건에 맞으면 M인 answer[1]을 1 증가한다.
모든 조건에 맞지 않는다면(95 이상이 아니라면) 95 미만으로, S인 answer[0]을 1 증가한다.
(조건을 반대로 해도 무관)
i | people[i] | 조건 | answer |
0 | 97 | 95 <= 97 < 100 M |
answer[1]++ |
1 | 102 | 100 <= 102 < 105 L |
answer[2]++ |
2 | 93 | 93 < 95 S |
answer[0]++ |
3 | 100 | 100 <= 100 < 105 L |
answer[2]++ |
4 | 107 | 105 <= 107 XL |
answer[3]++ |
따라서 answer는 [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);
for (int i = 0; i < people_len; i++) {
if (people[i] >= 105) answer[3]++;
else if (people[i] >= 100) answer[2]++;
else if (people[i] >= 95) answer[1]++;
else answer[0]++;
}
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");
}
구름 goormedu COS PRO 2급 기출문제 - C언어
반응형
'코딩 테스트 > [c언어] cos pro 2급 기출문제' 카테고리의 다른 글
[No.55] 6차 문제 5 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.30 |
---|---|
[No.54] 6차 문제 4 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.29 |
[No.52] 종이 나누어 주기 / cos pro 2급 c언어 기출 문제 6차 문제 2 (0) | 2021.05.28 |
[No.51] 저는 따뜻한 날이 좋아요 / cos pro 2급 c언어 기출 문제 6차 문제 1 (0) | 2021.05.28 |
[No.50] 가장 오래 일한 사람을 구해주세요 / cos pro 2급 c언어 기출 문제 5차 문제 10 (0) | 2021.05.27 |
댓글