알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는
문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시
오. 단 반복횟수가 1인 경우 생략합니다.
▣ 입력설명
첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.
▣ 출력설명
첫 줄에 압축된 문자열을 출력한다.
▣ 입력예제 1
KKHSSSSSSSE
▣ 출력예제 1
K2HS7E
function solution(s) {
let answer = "";
let cnt = 1;
s = s + " ";
for (let i = 0; i < s.length - 1; i++) {
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));
비슷한 방식으로 답은 똑같이 나왔었는데 문자열 맨 뒤에 빈 공백을 추가할 생각을 하지 못했었다.
'ALGORITHM' 카테고리의 다른 글
[JAVA] 백준 1254번- 팰린드롬 만들기 (0) | 2022.06.19 |
---|---|
[JAVA] 백준 14425번- 문자열 집합 (0) | 2022.06.18 |
[JAVA] 백준 1302번- 베스트셀러 (0) | 2022.06.18 |
[Javascript] 프로그래머스- 탐욕법(Greedy)/ 체육복 (0) | 2022.03.11 |
[Javascript] 프로그래머스- 정렬 / H-Index (0) | 2022.03.05 |