https://leetcode.com/problems/k-th-smallest-prime-fraction/submissions/1284723688/
class Solution {
public int[] kthSmallestPrimeFraction(int[] arr, int k) {
int len = arr.length, numerator = -1, denominator = -1, fractionPosCovered = 0;
double left = 0, right = 1;
while(fractionPosCovered != k) {
fractionPosCovered = 0;
double mid = left + (right - left) /2.0, maxFracValue = 0.0;
for(int numeratorIndx = 0, denoIndx = 1; numeratorIndx < len; numeratorIndx++) {
while(denoIndx < len && arr[numeratorIndx] > mid * arr[denoIndx])
denoIndx++;
int currFracPos = len - denoIndx;
if (denoIndx == len || (fractionPosCovered += currFracPos) > k)
break;
if (arr[numeratorIndx] > maxFracValue * arr[denoIndx]) {
maxFracValue = arr[numeratorIndx] * 1.0 / arr[denoIndx] ;
numerator = arr[numeratorIndx];
denominator = arr[denoIndx];
}
}
if (fractionPosCovered > k)
right = mid;
else
left = mid;
}
return new int[] {numerator, denominator};
}
}
'CS > Algorism' 카테고리의 다른 글
99클럽 코테 스터디 24일차 TIL: [프로그래머스] 방의 개수 (0) | 2024.06.12 |
---|---|
[2023 KAKAO BLIND RECRUITMENT] 개인정보 수집 유효기간 (0) | 2024.06.12 |
[2023 KAKAO BLIND RECRUITMENT] 표현 가능한 이진트리 (0) | 2024.06.11 |
99클럽 코테 스터디 22일차 TIL: [프로그래머스] 징검다리 (0) | 2024.06.10 |
99클럽 코테 스터디 21일차 TIL: [프로그래머스] 도둑질 (1) | 2024.06.09 |