Run Length Encoding(문자 개수 만큼 압축)
2021. 3. 27. 05:40ㆍAlgorithm/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 |