티스토리 뷰

알고리즘/코딩테스트 공부

3-5 문자열 압축

YG - 96년생 , 강아지 있음, 개발자 희망 2021. 11. 27. 17:00

문제

알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는
문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시
오. 단 반복횟수가 1인 경우 생략합니다.

풀이

function solution(s) {
  let answer = "";
  let cnt = 1;
  for (let i = 0; i < s.length; i++) {
    if (s[i] === s[i + 1]) {
      cnt++;
      console.log(s[i], cnt);
    } else if (s[i] !== s[i + 1]) {
      if (cnt !== 1) {
        answer += `${s[i]}${cnt === 1 ? "" : cnt}`;
        cnt = 1;
      } else {
        answer += s[i];
        cnt = 1;
      }
    }
  }

  return answer;
}

let str = "KKHSSSSSSSEASEASEASEASEASDZCCCCCCCCCAAAAAAAASSSSSSS";
console.log(solution(str));

s[i] 와 s[i+1]을 비교하여 같다면 cnt 값을 늘려주고  다르다면 answer에 값을 더줍니다. 

'알고리즘 > 코딩테스트 공부' 카테고리의 다른 글

4-2 뒤집은 소수  (0) 2021.11.28
4-1 자릿수의 합  (0) 2021.11.28
3-4 가장 짧은 문자거리  (0) 2021.11.27
3-3 숫자만 추출  (0) 2021.11.27
3-2 유효한 팰린드롬  (0) 2021.11.27
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함