찰리의 놀이터

(C언어) 문자열에서 같은 문자가 5번이상 나오면 뒤에 숫자를 표시하는 코드 본문

알고리즘 공부

(C언어) 문자열에서 같은 문자가 5번이상 나오면 뒤에 숫자를 표시하는 코드

차알리 2021. 3. 30. 23:48

코린이의 관점에서 작성한 코드이고 조언이 있다면 댓글 부탁드립니다 !

알파벳이나 숫자로 이루어진 문자열을 받아들여 같은 문자가 다섯 번 이상 반복되는 경우 반복되는 문자 바로 오른쪽에 반복횟수를 ( ) 에 넣어 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오.

 

입력 예 (input.txt)

AAAAABBBCCCCCCCCC

출력 예 (output.txt)

A(5)BBBC(9)

 

#define _CRT_SECURE_NO_WARINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*알파벳이나 숫자로 이루어진 문자열을 받아들여 같은 문자가
다섯 번 이상 반복되는 경우 반복되는 문자 바로 오른쪽에
반복횟수를 ( ) 에 넣어 표기하는 방법으로 문자열을 압축하는
프로그램을 작성하시오.*/
#define N 50
char str[N];
int main(void)
{
int count=1; //같은 문자가 나오면 카운트업
int i=0,j;
scanf("%s", str); //문자열 입력
for(i=0;i<strlen(str);i++)
{
if(str[i] == str[i+1]) //뒷문자와 현재문자가 같으면 카운트업
count++;
else
{
if(count>4) //카운트에 따른 뒤에 숫자 표시
printf("%c(%d)", str[i], count);
else //4까지는 숫자표시가 없으므로 반복문
{
for(j=0;j<count;j++)
{
printf("%c", str[i]);
}
}
count=1; //가장 중요한 count 초기화
}
}
}
view raw I48.c hosted with ❤ by GitHub