Programming Language/JavaScript
알고리즘 문제풀이 - compressString
Yongari
2022. 12. 29. 22:07
문제설명 :
문자열을 입력받아 연속되는 문자가 있을 경우, 연속 구간을 반복되는 수와 문자로 조합한 형태로 압축한 문자열을 리턴해야 한다. 예를들어 wwwpp면 3w2p 같은 방식으로 리턴해야합니다.
입력
인자 1 : str
- string 타입의 알파벳 문자열
출력
- string 타입을 리턴해야 합니다.
주의 사항
- 빈 문자열을 입력받은 경우, 빈 문자열을 리턴해야 합니다.
- 3개 이상 연속되는 문자만 압축합니다.
입출력 예시
let output = compressString('abc');
console.log(output); // --> abc
output = compressString('wwwggoppopppp');
console.log(output); // --> 3wggoppo4p
풀이 코드 설명
function compressString(str) {
//연속된 문자가 나올 떄 체크할 변수
let count = 1;
// 정답 변수
let result = '';
for(i=0; i<str.length; i++) {
//앞의 배열요소와 뒤의 요소가 같은 값일 경우 체크
if (str[i] === str[i+1]) {
count += 1;
} else {
// 카운트가 3이상일 경우, 3이상이면 3w와 같이 표현
if (count >= 3) {
result += count + str[i];
// 카운트 초기화
count = 1;
// 카운트 이하일 경우 문자 더하기
} else {
for (j=1; j<=count; j++) {
result += str[i];
}
// 카운트 초기화
count = 1;
}
}
}
//정답 변수 리턴
return result;
}