
function solution(s) {
var answer = 0
let half = Math.floor(s.length / 2)
let arr = []
let min = 100100
for (let i = 1; i <= half; i++) {
let str = s.substr(0, i)
let cnt = 1
for (let j = i; j <= s.length - i; j = j + i) {
if (s.substr(j - i, i) === s.substr(j, i)) {
cnt++
if (s.length - j - i < i) {
str += cnt
}
} else {
if (cnt !== 1) {
str += cnt
str += s.substr(j, i)
} else {
str += s.substr(j, i)
}
cnt = 1
}
}
str += s.substr(s.length - 1 - (s.length % i), s.length % i)
arr.push(str)
}
for (let i = 0; i < arr.length; i++) {
if (arr[i].length < min) {
min = arr[i].length
}
}
if (s.length === 1) min = 1
answer = min
return answer
}
solution("aabbaccc")
console.log('solution("aabbaccc"): ', solution("aabbaccc"))
- 절반길이 범위까지만 구하고,
substr
을 이용해서 비교할 글자를 가져온다.
- 하나하나 비교하면서 같은 글자의 숫자를
str
변수에 붙인다.