KU COSE101 2016기말고사 4번 문제
2016 기출 | 1번 | 2번 | 3번 | 4번 | 5번 | |
2017 기출 | 1번 | 2번 | 3번 | 4번 | 5번 | |
2018 기출 | 1번 | 2번 | 3번 | 4번 | 5번 | 6번 |
영문자로만 이루어져 있고 반복된 문자가 많이 나오는 문자열의 경우 문자의 반복횟수를 표시하여 문자열의 길이를 줄일 수 있다. 예를 들어 다음과 같이 변환할 수 있다.
- “zzzzzzzz” –> “8z”
- “bbbbcceeeee” –> “4b2c5e”
한 문자의 반복 횟수는 최대 9회이고, 문자가 반복되지 않는 경우는 반복횟수를 표시하지 않는다. 또 이 알고리즘은 대문자와 소문자를 구분하고, 공백 문자열은 그대로 둔다.
- “abcde” –> “abcde”
- “aaaaaAAAA” –> “5a4A”
- ”” –> “”
(a) 주어진 문자열을 압축하는 함수 strcompress를 작성하시오.
void strcompress(char* input, char* output) {
}
int main() {
char str[] = "zzzzzzzzaaabbcdddeee";
char comp[100];
strcompress(str, comp);
printf("Compress: %s\n", comp);
}
(b) 압출된 문자열을 복원하는 함수 strdecompress를 작성하시오.
void strdecompress(char* input, char* output) {
}
int main() {
char comp[] = "8z3a2bc3d3e";
char decomp[100];
strdecompress(comp, decomp);
printf("Decompress: %s\n", decomp);
}
Comments