[JS알고리즘] 문자열 압축
in Algorithm
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는
문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시
오. 단 반복횟수가 1인 경우 생략합니다.
function solution(s){
let answer="";
let cnt=1;
s=s+" ";
for(let i=0; i<s.length-1; i++){ //length-1 이어야 알파벳까지만 감. 바로 전줄에서 " "로 문자열을 하나 증가시켜놓은거 이전까지만 돌아야하기 떄문.
if(s[i]===s[i+1]) cnt++;
else{
answer+=s[i];
if(cnt>1) answer+=String(cnt);
cnt=1;
}
}
return answer;
}
let str="KKHSSSSSSSE";
console.log(solution(str));
- for문으로 돌리는 s에서 s[i] 와 s[i+1]의 값이 동일한지 비교하고 같으면 cnt를 증가(cnt는 갯수이기 때문에 무조건 1부터 시작한다)
- cnt가 1보다 크면 answer에 더한다
inflearn 자바스크립트 알고리즘 강의 내용 =)