2020.코딩일지

[JS][코플릿]Algorithm Basic-20_compressString 본문

algorithm

[JS][코플릿]Algorithm Basic-20_compressString

개발하는라푼젤 2022. 8. 16. 09:15
728x90

 

문자열을 입력받아 연속되는 문자가 있을 경우, 연속 구간을 반복되는 수와 문자로 조합한 형태로 압축한 문자열을 리턴해야 합니다.

 

주의사항

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

입출력예시

더보기
//입출력예시
let output = compressString('abc');
console.log(output); // --> abc

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

 

👻

 

 

function compressString(str) {
  // TODO: 여기에 코드를 작성합니다.
  if (str.length === 0) return ""
  let text = str[0]; //한개넣고시작: 일치하는 문자열 모아두는곳
  let result = ""; 
  for (let i = 1; i < str.length; i++) {
    if (text[0] === str[i]) { //앞문자와 일치하는경우
      text += str[i];
    } else if (text.length > 2) { // 일치문자가 3개인경우
      result += `${text.length+str[i-1]}` //결과에찍어주기. 다음문자를가리키고있는걸 -1땡겨서 앞문자열 넣어줌.
      text = str[i]; //해당문자 넣어주고 다시시작
    } else { //일치문자가 2개이하인경우
      result += text 
      text = str[i];
    }
  }
  if (text.length !== 0) { //text에 남아있을 문자도 잊지말고 챙겨가자!
    result += text
  }
  return result;
}

더 자세한 설명은 킹규명님의노션

 

Comments