티스토리 뷰

반응형

문제

대문자로 이루어진 문자열을 입력받았을 때 같은 문자가 연속으로 반복되는 경우 오른쪽에 반복 횟수를 숫자로 적고 압축하여 출력하시오.
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;
}

 

반응형
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31