// 작성코드functioncompressString(str) {
// count 변수를 1로 설정let count = 1;
// 새로운 문자열을 저장할 변수let newStr = '';
// str의 길이만큼 반복for (let i = 0; i < str.length; i++) {
// 현재 문자와 다음 문자가 같으면if (str[i] === str[i + 1]) {
// count를 증가
count++;
} else {
// count가 3 이상이면if (count >= 3) {
// count와 현재 문자를 새로운 문자열에 추가
newStr += count + str[i];
} else {
// count가 3 미만이면, str의 i-count+1부터 i까지의 문자열을 새로운 문자열에 추가// substring(x, y) 메소드는 string 객체의 시작 인덱스(x)로 부터 종료 인덱스(y) 전 까지 문자열의 부분 문자열을 반환
newStr += str.substring(i - count + 1, i + 1);
}
// count를 1로 초기화
count = 1;
}
}
// 새로운 문자열을 반환return newStr;
}
// 레퍼런스functioncompressString(str) {
// 연속되는 문자를 기록하기 위한 변수// 첫 번째 문자로 초기화let before = str[0];
// 동일한 문자의 반복 횟수let count = 1;
// 정답으로 리턴할 문자열let result = '';
// 마지막 부분이 연속된 문자일 경우를 위해 dummy 문자 추가
str = str + ' ';
for (let i = 1; i < str.length; i++) {
// 동일한 문자가 반복될 경우if (before === str[i]) {
count++;
} else {
// 이전과 다른 문자일 경우,// 반복된 횟수가 3 이상일 경우에만 압축을 한다.if (count >= 3) {
result = result + `${count}${before}`;
} else {
result = result + before.repeat(count);
}
before = str[i];
count = 1;
}
}
return result;
}