Count Subarrays of Length Three With a Condition

EasyArray

문제 설명

  • 정수 배열 nums가 주어집니다.
  • 길이가 3인 부분 배열(subarray) 중에서 첫 번째와 세 번째 숫자의 합이 두번째 숫자의 정확히 절반과 같은 부분 배열의 개수를 반환해야 합니다.

문제 풀이

Brute Force

  1. 배열을 한 번 순회하면서 모든 길이 3의 연속된 부분 배열을 확인합니다.
  2. 각 부분 배열에서 2 * (첫번째 + 세번째) = 두번째 조건을 검사합니다.
  3. 조건이 충족될 때마다 카운터를 증가시킵니다.
export function countSubarrays(nums: number[]): number {
  const n = nums.length;
 
  let answer = 0;
  for (let i = 0; i < n - 2; i++) {
    if (2 * (nums[i] + nums[i + 2]) === nums[i + 1]) {
      answer += 1;
    }
  }
  return answer;
}

복잡도

  • 시간 복잡도: O(n)O(n)
  • 공간 복잡도: O(1)O(1)