Run Length Encoding(문자 개수 만큼 압축)

2021. 3. 27. 05:40Algorithm/easy

Run Length Encoding

이 문제는 문자열을 하나씩 세리다가 9개나 다른 문자가 나오면 저장을 할 수 있도록 압축을 하는 문제이다.

 

필자의 경우에는 한개씩 세리다가 이전 문자를 저장하며 9개가 되거나 문자가 달라지면 result 배열에 저장하는 방식으로 문제를 해결했습니다. 

 

더보기
#include <string>
using namespace std;

string runLengthEncoding(string str) {
	vector<char> result;
  char currentChar = str[0];
	int count = 1;
	
	for(int i = 1; i < str.size(); i++){
		if(currentChar != str[i] || count == 9){
			result.push_back(count+'0');
			result.push_back(currentChar);
			count=1;
			currentChar = str[i];
			continue;
		}
		
		currentChar = str[i];
		count++;
	}
	
	result.push_back(count +'0');
	result.push_back(currentChar);
	
  return string(result.begin(), result.end());
}

그리고 추가로 나머지 마지막 값은 if문에 걸릴 일이 없으니 마지막에 추가로 push를 해주면 된다.

 

'Algorithm > easy' 카테고리의 다른 글

Generate Document - Easy  (0) 2021.03.27
카이사르의 암호[Caesar Cipher] - easy  (0) 2021.03.27
팰린드롬인지 체크하기 - easy  (0) 2021.03.27