Skip to content
Algorithm.js | Algorithm in JavaScript
🚀 복합 패턴

2447. Number of Subarrays With GCD Equal to K

시작 인덱스를 고정하고 오른쪽으로 확장하며 gcd를 갱신해 k가 되면 카운트하고 k보다 작아지면 중단하는 O(n^2) sliding window 전략 정리

Oct 29, 2025

문제 설명

풀이 아이디어

해결 전략

구현

/**
* @param {number[]} nums
* @param {number} k
* @return {number}
*/
var subarrayGCD = function(nums, k) {
const N = nums.length;
const gcd = (a,b) => {
if (b === 0) return a;
return gcd(b, a % b);
}
let count = 0;
for (let left = 0; left < N; left++) {
let currentGCD = 0;
for (let right = left; right < N; right++) {
currentGCD = gcd(currentGCD, nums[right]);
if (currentGCD === k) count++;
else if (currentGCD < k) break;
}
}
return count;
};