티스토리 뷰
반응형
문제
대문자로 이루어진 문자열을 입력받았을 때 같은 문자가 연속으로 반복되는 경우 오른쪽에 반복 횟수를 숫자로 적고 압축하여 출력하시오.
1은 생략합니다.
입력 예제
AAEEENOOSSSSS
출력 예제
A2E3NO2S5
풀이
function solution(s) {
let answer = "";
let cnt = 1; // 무조건 한 개는 있기 때문에 1부터 시작
s += " "; // 마지막 문자와 비교할 알파벳이 아닌 문자
// 마지막 빈 문자는 제외하기 위해 s.length - 1
for (let i = 0; i < s.length - 1; i++) {
// 현재 문자와 다음 문자가 같은 경우 cnt+1 누적
if (s[i] === s[i + 1]) cnt++;
// 현재 문자와 다음 문자가 다른 경우
else {
// answer에 현재 문자를 담고
answer += s[i];
// 누적된 cnt가 1보다 크다면
// cnt를 뒤에 붙인다.
if (cnt > 1) answer += String(cnt);
// cnt 초기화
cnt = 1;
}
}
return answer;
}
반응형
'Data Structure & Algorithm' 카테고리의 다른 글
[알고리즘-JS] 자릿수의 합 (0) | 2022.05.03 |
---|---|
[알고리즘-JS] 짧은 문자 거리 구하기 (0) | 2022.05.03 |
[알고리즘-JS] 숫자만 추출하기 (0) | 2022.05.03 |
[알고리즘-JS] 회문 문자열/팰린드롬 판별 + 정규식 (0) | 2022.05.03 |
[알고리즘-JS] 회문 문자열/팰린드롬 (0) | 2022.05.03 |