반응형
5글자 이상인 단어 배열하기
문제 설명
단어들이 들어있는 배열에서 길이가 5 이상인 단어를 배열에 들어있는 순서대로 이어 붙이려 합니다.
예시 설명 참고
길이가 5 이상인 단어를 순서대로 이어 붙인 문자열을 return 하도록 solution 함수를 완성하세요.
예시
words | words_len | return |
["my", "favorite", "color", "is", "violet"] | 5 | "favoritecolorviolet" |
["yes", "i", "am"] | 3 | "empty" |
예시 설명
예 1.
길이가 5 이상인 단어는 "favorit", "color" , "violet"입니다.
이를 배열에 들어있는 순서대로 이어 붙이면 "favoritcolorviolet"이 됩니다.
예 2.
길이가 5 이상인 단어가 없으므로 "empty"가 return 됩니다.
코드 해석 및 전체 코드
동적 할당 주기
answer = (char*)malloc(sizeof(char) * words_len);
(char*) | malloc의 반환형이 void* 이므로 (char*) 형태로 형변환 |
||
sizeof(char) | sizeof()는 괄호 안에 자료형 타입을 바이트로 연산해주는 연산자 |
||
sizeof(char) * words_len | words 사이즈가 가지고 있는 동일한 크기의 메모리 할당 |
for) 0 ~ words_len - 1까지 반복
if in for) words[i]의 문자열 길이가 5 이상이면 answer에 words[i]의 값 이어 붙이기
if) answer의 문자열 길이가 0이면 answer의 값 empty
string 클래스
#include <string.h>
strlen | 문자열의 길이 구하는 함수 | strlen(words[0]) | 2 |
strcat | 문자열 이어 붙이는 함수 | strlen(answer, words[0]) strlen(answer, words[1]) |
my myfavorite |
words[0] = "my", words[1] = "favorite"
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
char* solution(char* words[], int words_len) {
char* answer = "";
answer = (char*)malloc(sizeof(char) * words_len);
answer[0] = 0; // 초기화
for (int i = 0; i < words_len; i++) {
if (strlen(words[i]) >= 5) {
strcat(answer, words[i]);
}
}
if (strlen(answer) == 0) answer = "empty";
return answer;
}
int main() {
char* words1[5] = { "my", "favorite", "color", "is", "violet" };
int words_len1 = 5;
char* ret1 = solution(words1, words_len1);
printf("solution 함수의 반환 값은 %s 입니다.\n", ret1);
char* words2[3] = { "yes", "i", "am" };
int words_len2 = 3;
char* ret2 = solution(words2, words_len2);
printf("solution 함수의 반환 값은 %s 입니다.\n", ret2);
}
[2차] 문제 4) 5글자 이상인 단어 배열하기구하기
구름 goormedu COS PRO 2급 기출문제 - C언어
반응형
'코딩 테스트 > [c언어] cos pro 2급 기출문제' 카테고리의 다른 글
[No.16] 엘리베이터의 총 이동 거리 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.10 |
---|---|
[No.15] 몬스터 공격하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.10 |
[No.13] 짝수들의 제곱의 합 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.09 |
[No.12] 더 많은 배수 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.08 |
[No.11] 최대한 많은 쌍의 장갑 개수 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.08 |
댓글