[LeetCode] 2644. Find the Maximum Divisibility Score

Chobby·2025년 11월 24일

LeetCode

목록 보기
775/800

😎풀이

  1. divisors순회
    1-1. 현재 수로 nums 중 나누어 떨어지게 나눌 수 있는 수 탐색
    1-2. 기존 수 미만이라면, 다음 탐색
    1-3. 기존 수와 동일하다면, 약수를 더 낮은 수로 갱신
    1-4. 기존 수를 초과한다면, 현재 약수와 나눌 수 있는 최대 수 갱신
  2. 가장 많은 수를 나눌 수 있는 약수 반환
function maxDivScore(nums: number[], divisors: number[]): number {
    let div = Infinity
    let score = 0
    for(const divisor of divisors) {
        const divisible = nums.filter(a => (a % divisor) === 0).length
        if(divisible < score) continue
        if(divisible === score) {
            div = Math.min(div, divisor)
        } else {
            score = divisible
            div = divisor
        }
    }
    return div
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글