알고리즘/코딩테스트 공부
3-5 문자열 압축
YG - 96년생 , 강아지 있음, 개발자 희망
2021. 11. 27. 17:00
문제
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는
문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시
오. 단 반복횟수가 1인 경우 생략합니다.
풀이
function solution(s) {
let answer = "";
let cnt = 1;
for (let i = 0; i < s.length; i++) {
if (s[i] === s[i + 1]) {
cnt++;
console.log(s[i], cnt);
} else if (s[i] !== s[i + 1]) {
if (cnt !== 1) {
answer += `${s[i]}${cnt === 1 ? "" : cnt}`;
cnt = 1;
} else {
answer += s[i];
cnt = 1;
}
}
}
return answer;
}
let str = "KKHSSSSSSSEASEASEASEASEASDZCCCCCCCCCAAAAAAAASSSSSSS";
console.log(solution(str));
s[i] 와 s[i+1]을 비교하여 같다면 cnt 값을 늘려주고 다르다면 answer에 값을 더줍니다.