주어진 문자열의 앞에서부터 순차적으로 잘라야 하므로, 1개 단위부터 순차적으로 자를 것이다.
반복을 시행하며, 자를 단위 수가 전체 문자열의 길이와 같을 때까지 반복한다. 길이를 초과하게 되면 반복을 종료하도록 한다.
자를 단위 수에 해당하는 반복을 시작하기 전, 문자열의 처음 글자부터 자를 단위 수만큼의 길이를 잘라낸다. 이를 sliceStr이라 명명하겠다.
문자열의 처음 글자부터 순회하며, 자를 단위의 길이만큼 잘라내며 sliceStr과 같은지 검사한다.
순회가 종료되어도, 완성된 문자열에 마지막으로 잘라낸 문자열이 합해지지 못했다.
순회가 종료되면 정답을 담을 배열에 해당 반복 차례에서 완성된 문자열을 담는다.
반복이 모두 종료되면, 정담이 담긴 배열에서 가장 길이가 짧은 요소의 길이를 반환한다.
function solution(s) {
let num = 1
const answer = []
while(num <= s.length) {
let count = 0
let numStr = ''
let sliceStr = s.slice(0, 0 + num)
for(let i = 0; i < s.length; i++) {
const rest = s.slice(i, i + num)
if(rest === sliceStr) {
count += 1
} else {
if(count >= 2) {
numStr = numStr + count + sliceStr
} else {
numStr = numStr + sliceStr
}
sliceStr = rest
count = 1
i = i + num - 1
}
}
answer.push(numStr)
num += 1
}
return answer
}