문자열 압축

2020.07.30

const solution = (s) => {
  const answer = [s.length];
  const sliceLimit = Math.floor(s.length / 2);
  for (let i = 1; i <= sliceLimit; i++) {
    const copyOfS = s.split("");
    let result = "";
    let count = 1;
    let previous = copyOfS.splice(0, i).join("");
    while (copyOfS.length) {
      const current = copyOfS.splice(0, i).join("");
      if (previous == current) {
        count++;
        continue;
      }
      if (count == 1) {
        result += previous;
      } else {
        result = result + count + previous;
      }
      previous = current;
      count = 1;
    }
    if (count == 1) {
      result += previous;
    } else {
      result = result + count + previous;
    }
    answer.push(result.length);
  }
  return Math.min(...answer);
};
  • 의외로 정규표현식 풀이가 없네

0개의 댓글