상세 컨텐츠

본문 제목

알고리즘 문제풀이 - compressString

Programming Language/JavaScript

by Yongari 2022. 12. 29. 22:07

본문

문제설명 : 

문자열을 입력받아 연속되는 문자가 있을 경우, 연속 구간을 반복되는 수와 문자로 조합한 형태로 압축한 문자열을 리턴해야 한다. 예를들어 wwwpp면 3w2p 같은 방식으로 리턴해야합니다.

 

입력

인자 1 : str

  • string 타입의 알파벳 문자열

출력

  • string 타입을 리턴해야 합니다.

주의 사항

  • 빈 문자열을 입력받은 경우, 빈 문자열을 리턴해야 합니다.
  • 3개 이상 연속되는 문자만 압축합니다.

입출력 예시

let output = compressString('abc');
console.log(output); // --> abc

output = compressString('wwwggoppopppp');
console.log(output); // --> 3wggoppo4p

 

 

풀이 코드 설명

function compressString(str) {
  //연속된 문자가 나올 떄 체크할 변수 
  let count = 1;
  // 정답 변수 
  let result = '';
  for(i=0; i<str.length; i++) {
  //앞의 배열요소와 뒤의 요소가 같은 값일 경우 체크 
    if (str[i] === str[i+1]) {
      count += 1;
    } else {
      // 카운트가 3이상일 경우, 3이상이면 3w와 같이 표현 
      if (count >= 3) {
        result += count + str[i];
        // 카운트 초기화 
        count = 1;
        // 카운트 이하일 경우 문자 더하기 
      } else {
          for (j=1; j<=count; j++) {
           result += str[i];
         }
         // 카운트 초기화 
        count = 1;
      }
    }
  }
  //정답 변수 리턴 
  return result;
}

관련글 더보기