😎풀이

  1. nums를 순회하며, 간격이 일정한 부분 배열 탐색
  2. 부분배열의 수를 확인하여 반환
function numberOfArithmeticSlices(nums: number[]): number {
    let countArithmetic = 0
    const n = nums.length
    for(let left = 0; left <= n - 3; left++) {
        const firstGap = nums[left] - nums[left + 1]
        const secondGap = nums[left + 1] - nums[left + 2]
        if(firstGap !== secondGap) continue
        countArithmetic++
        for(let right = left + 2; right < n; right++) {
            const nextGap = nums[right] - nums[right + 1]
            if(nextGap !== firstGap) break
            countArithmetic++
        }
        
    }
    return countArithmetic
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글