본문 바로가기
알고리즘/인프런

[JS] - 문자열 압축

by 미니미니찍찍 2022. 3. 25.
알파벳 대문자로 이루어진 문자열을 입력받아
같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로
오른쪽에 반복 횟수를 표기하는 방법
단 ,1인 경우 생략 


내가 푼 코드 

생각보다 어려웠다....

온갖 구글링 및 강의를 듣고 내가 풀수있는 방법을 동원해서 풀어보았다.

 

정규표현식에 대해 공부를 하고나니 

코드를 짤때도 유용하게 이용하는 거 같다.

function solution(str) {
  let answer = "";
  let cnt = 1;

  for (let i = 0; i < str.length; i++) {
    if (str[i] === str[i + 1]) {
      cnt++;
    } else {
      answer += str[i] + cnt;
      cnt = 1;
    }
  }
  answer = answer.match(/[^1]/g).join("");
  return answer;
}

let str = "KKHSSSSSSSE";
console.log(solution(str));

 

- 반복문을 돌려 숫자가 동일할때 마다 카운트 증가

- 다르면 1로 초기화시키면서 answer에 담는다 .

- 다돌고 나면 정규표현식을 이용해서 1을 제외시킨다. 

 

 

출처 - 인프런 자바스크립트 알고리즘 김태원님 강의

728x90
반응형