문제
풀이과정
- 쪼개는 단위가 문자열의 반 이상 넘어가면 for문을 돌릴필요 없다.
1은 생략되므로. 길이가 다 같게나옴
- 현재 쪼갠 단어와 다음번째 단어랑 비교해서 같으면 count 증가
다르면 count가 1인지 아닌지 판단하여 string에 이어준다.
- 반복 후 배열의 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;
}