1283. Find the Smallest Divisor Given a Threshold

양성준·2025년 7월 16일

코딩테스트

목록 보기
94/102

문제

https://leetcode.com/problems/find-the-smallest-divisor-given-a-threshold/description/

풀이

class Solution {
    public int smallestDivisor(int[] nums, int threshold) {
        int n = nums.length;
        int lt = 1;
        int rt = Integer.MIN_VALUE;
        int answer = Integer.MAX_VALUE;
        for(int num : nums) {
            rt = Math.max(rt, num);
        }

        while(lt <= rt) {
            int sum = 0;
            int mid = (lt + rt) / 2;
            for(int i = 0; i < n; i++) {
                int temp = nums[i] / mid;
                if(nums[i] % mid == 0) {
                    sum += temp;
                } else {
                    sum += temp + 1;
                }
            }
            if(sum > threshold) {
                lt = mid + 1;
            } else {
                answer = mid;
                rt = mid - 1;
            }
        }
        return answer;  
    }
}
profile
백엔드 개발자

0개의 댓글