반응형
#문제9 알파벳 문자열이 주어질 때, 연속하는 중복 문자를 삭제하려고 합니다. 예를 들어, "senteeeencccccceeee"라는 문자열이 주어진다면, "sentence"라는 결과물이 나옵니다.
영어 소문자 알파벳으로 이루어진 임의의 문자열 characters가 매개변수로 주어질 때, 연속하는 중복 문자들을 삭제한 결과를 return 하도록 solution 함수를 작성하였습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 코드가 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
#####매개변수 설명 영어 소문자 알파벳으로 이루어진 임의의 문자열 characters가 solution 함수의 매개변수로 주어집니다.
- characters는 알파벳 소문자로만 이루어져있습니다.
- characters의 길이는 10 이상 100 이하입니다.
#####return 값 설명 characters에서 연속하는 중복 문자를 제거한 문자열을 return 해주세요.
#####예시
characters return
"senteeeencccccceeee" | "sentence" |
문제
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
char* solution(char* characters) {
char* result = malloc(sizeof(char)*strlen(characters));
int result_len = 0;
result[0] = characters[0];
result_len++;
for (int i = 1; i < strlen(characters); i++) {
if (characters[i - 1] != characters[i]) {
result[result_len] = characters[i];
result_len++;
}
}
result[result_len] = NULL;
return result;
}
정답
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
char* solution(char* characters) {
char* result = malloc(sizeof(char)*strlen(characters));
int result_len = 0;
result[0] = characters[0];
result_len++;
for (int i = 0; i < strlen(characters); i++) {
if (characters[i - 1] != characters[i]) {
result[result_len] = characters[i];
result_len++;
}
}
result[result_len] = NULL;
return result;
}
// The following is main function to output testcase. The main function is correct and you shall correct solution function.
int main() {
char* characters = "senteeeencccccceeee";
char* ret = solution(characters);
// Press Run button to receive output.
printf("Solution: return value of the function is %s .\\n", ret);
}
반응형
'Cos Pro 2급' 카테고리의 다른 글
Cos Pro 2급 2차_문제1번 C언어 (0) | 2024.03.29 |
---|---|
Cos Pro 2급 1차_문제10번 C언어 (0) | 2024.03.29 |
Cos Pro 2급 1차_문제8번 C언어 (0) | 2024.03.29 |
Cos Pro 2급 1차_문제7번 C언어 (0) | 2024.03.29 |
Cos Pro 2급 1차_문제6번 C언어 (0) | 2024.03.29 |