알고리즘
자바스크립트 문자열 압축 알고리즘
살다보니개발자
2022. 9. 1. 22:59
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오.(단 반복회수가 1인경우 생략)
입력예제
AAABBBBCDDDD
출력예제
A3B4CD4
function solution(s) {
let result = "";
let count = 1;
for (let i = 0; i < s.length; i++) {
if (s[i] === s[i + 1]) {
count = count + 1;
} else {
if (count > 1) {
result = result + s[i] + String(count);
count = 1;
} else {
result = result + s[i];
}
}
}
return result;
}
let str = "AAABBBBCDDDD";
console.log(solution(str));
다음 인덱스의 문자랑 비교한후 같으면 count ++
다음 인덱스의 문자랑 같지않고 , count가 1보다 크면 result에 기존 result랑 해당 문자 및 스트링으로 변환된 count를 합쳐줌
그리고 count는 1로 초기화
count가 1보다 작을시 count를 제외한 해당 문자만 result에 합쳐줌