12.문자열 압축 - 문자열 탐색
Updated:
문자열 압축
🔍 문제
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오.
단 반복횟수가 1인 경우 생략합니다.
🔹 입력설명
첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.
🔹 출력 설명
첫 줄에 압축된 문자열을 출력한다.
🔹 입력예제 1
KKHSSSSSSSE
🔹 출력 예제 1
K2HS7E
📌 풀이
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(s) {
let answer = "";
let cnt = 1;
let n = s.length;
s= s + " "; // 맨 뒤에 빈 문자열 추가 (비교를 해야 되기 때문에)
for(let i = 0; i < n-1; i++) { // n-1 은 index 가 알파벳 구간(추가한 맨 뒤 빈 문자열은 제외해야되기때문에)
if (s[i] === s[i + 1]) cnt ++; // 뒤에거랑 비교 했을때, 같을경우에는 cnt 1씩 증가
else {
answer += s[i] // 다를 경우에는 answer에 그 범위 바로 return
if(cnt > 1) answer += String(cnt) // 1 이상의 숫자만 나와야 되고, answer 의 형식이 str 이니까 int 에서 str 로 형변환
cnt = 1;
}
}
return answer;
}
let str = "KKHSSSSSSSE";
console.log(solution(str));
</script>
</body>
</html>
Leave a comment