로봇이 되고픈 부엉이

(C 언어) 압축문자열 본문

대학생의 그쩍거림/C 언어

(C 언어) 압축문자열

탈모탈모대작전 2019. 5. 27. 02:10
728x90
반응형

포인터를 드디어 건드리고 말았다...

역시 공부를 안하고는 하기 쉽지 않는 포인터의 영역...

이번 문제는 나에게 정말 큰 힘듦을 가지게 해주었다.

문제는 다음과 같다.

"

압축 규칙: 문자(a-z, A-Z)의 반복 횟수를 문자 앞에 적어준다.

압축된 문장을 입력받는다.

압축을 풀어 원래의 문장으로 복원한다.

출처: 한국외국어대학교 바이오메디컬공학부 컴퓨터학 개론

다음은 해답이다.

아니... 이 방법은 그냥 야매로 한 것이므로 솔직히 내 방법을 베낄꺼면 걸린다고 보면 된다.

#include<stdio.h>
#include<Windows.h>
#include <stdlib.h>
#include<math.h>

int main() {

	char abc[80] = {0,};
	char* ptr = abc;
	scanf("%s", abc);
	//printf("%c", *(ptr+1));

	int cnt = 0, arr[10] = { 0, };
	//printf("%d", *ptr);
	for (int i = 0; i < strlen(abc); i++) {
		int a = *ptr;
		if ((65 <= a && a < 91) || (97 <= a && a < 123)) {
			for (int j = 0; j < cnt; j++) {
				printf("%c", *ptr);
			}
			cnt = 0;
	
			ptr++;
		}
		else {
			//printf("%d", atoi(ptr));
			cnt = atoi(ptr);
			if ((cnt - 10) >= 0) {
				ptr = ptr + 2;
			}
			else {
				ptr++;
			}
		}
		
	}

	//system("pause");
	return 0;
}

 

728x90
반응형