알고리즘

자바스크립트 문자열 압축 알고리즘

살다보니개발자 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에 합쳐줌

'알고리즘' 카테고리의 다른 글

괄호문자제거(스택)  (0) 2022.12.01
올바른 괄호(스택) - 자바스크립트  (0) 2022.11.27
아나그램(자바스크립트)  (0) 2022.10.11
학급 회장(해쉬)  (0) 2022.09.18
완전탐색(Brute Force) 멘토링  (0) 2022.09.06