알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오.(단 반복회수가 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에 합쳐줌
'알고리즘' 카테고리의 다른 글
괄호문자제거(스택) (0) | 2022.12.01 |
---|---|
올바른 괄호(스택) - 자바스크립트 (0) | 2022.11.27 |
아나그램(자바스크립트) (0) | 2022.10.11 |
학급 회장(해쉬) (0) | 2022.09.18 |
완전탐색(Brute Force) 멘토링 (0) | 2022.09.06 |