본문 바로가기
algorithm/js

[프로그래머스] 문자열 압축

by blogsy 2020. 5. 1.

https://programmers.co.kr/learn/courses/30/lessons/60057

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(s) {
  var answer = s.length;

  for (var cut = 1; cut <= parseInt(s.length / 2); cut++) {
    var cutting = [];
    for (var i = 0; i < s.length; i += cut) {
      cutting.push(s.substr(i, cut));
    }

    var cnt = 0;
    var str = "";
    var shortS = "";
    for (var i = 0; i < cutting.length; i++) {
      if (str.length == 0) {
        str = cutting[i];
        cnt++;
        continue;
      }
      if (str == cutting[i]) {
        cnt++;
      } else if (str != cutting[i]) {
        if (cnt == 1) {
          shortS += str;
        } else {
          shortS += cnt + str;
        }
        str = "";
        cnt = 0;
        str = cutting[i];
        cnt++;
      }
      if (!cutting[i + 1]) {
        if (cnt == 1) {
          shortS += str;
        } else {
          shortS += cnt + str;
        }
      }
    }

    if (shortS.length < answer) {
      answer = shortS.length;
    }
  }

  return answer;
}

댓글