
😎풀이
s가 k 길이만큼 짧아질 때까지 반복
1-1. 문자열 s를 k만큼씩 자름
1-2. 잘린 문자열의 각각 문자를 더함
1-3. 더해진 결괏값을 하나의 문자열로 합침
1-4. 합쳐진 문자열로 s 갱신
- 최종적으로 변형된
s 반환
function digitSum(s: string, k: number): string {
let remain = s
while(remain.length > k) {
const groups = divideGroup(remain, k)
const sums = groups.map(a => {
const result = sumNumber(a)
return String(result)
})
remain = sums.join('')
}
return remain
};
function divideGroup(str: string, k: number) {
const group = []
for(let i = 0; i < str.length; i += k) {
const cur = str.slice(i, i + k)
group.push(cur)
}
return group
}
function sumNumber(str: string) {
const splitted = [...str]
return splitted.reduce((acc, cur) => acc + Number(cur), 0)
}