2020.코딩일지
[JS][코플릿]Algorithm Basic-20_compressString 본문
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;
}
더 자세한 설명은 킹규명님의노션
'algorithm' 카테고리의 다른 글
[JS][코플릿]Immersive Toy Problem-04_bubbleSort (0) | 2022.08.19 |
---|---|
[JS][코플릿]Immersive Toy Problem-03_isSubsetOf (0) | 2022.08.17 |
[JS][코플릿]Algorithm Basic-19_decryptCaesarcipher (0) | 2022.08.14 |
[JS][코플릿]Algorithm Basic-18_numberSearch (0) | 2022.08.14 |
[JS][코플릿]Algorithm Basic-16_isIsogram (0) | 2022.08.14 |
Comments