[LeetCode] 2243. Calculate Digit Sum of a String

Chobby·2일 전
1

LeetCode

목록 보기
696/709

😎풀이

  1. sk 길이만큼 짧아질 때까지 반복
    1-1. 문자열 sk만큼씩 자름
    1-2. 잘린 문자열의 각각 문자를 더함
    1-3. 더해진 결괏값을 하나의 문자열로 합침
    1-4. 합쳐진 문자열로 s 갱신
  2. 최종적으로 변형된 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)
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글