프로그래머스 - 문자열 압축

front_pica·2021년 4월 17일
0
post-thumbnail

문제

풀이과정

  1. 쪼개는 단위가 문자열의 반 이상 넘어가면 for문을 돌릴필요 없다.
    1은 생략되므로. 길이가 다 같게나옴
  2. 현재 쪼갠 단어와 다음번째 단어랑 비교해서 같으면 count 증가
    다르면 count가 1인지 아닌지 판단하여 string에 이어준다.
  3. 반복 후 배열의 Math.min()을 통해 최소값을 찾아낸다.

코드

function solution(s) {
  const arr = [];
  let answer = 0;
  
  for(let i=0; i<s.length/2; i++) {
      const num = i+1; 
      let count = 1; 
      let currentString = '';
      for (let j=0; j<s.length; j=j+num) { 
          const currentWord = s.substring(j, j+num); 
          const nexWord = s.substring(j+num, j+num+num); 
          if(currentWord === nexWord) {
              count += 1;
          } else {
            currentString = (count === 1) ? currentString + currentWord : currentString + count + currentWord;
              count = 1;
          }
      }  
      arr.push(currentString.length);
  }
  
  answer = Math.min(...arr);
  return answer;
}
profile
한걸음씩

0개의 댓글