📝 문제
https://leetcode.com/problems/find-right-interval/description/
💦 풀이 실패
import java.util.*;
public class Solution {
public int[] findRightInterval(int[][] intervals) {
int n = intervals.length;
// (start, index) 형태로 정렬하기 위해 start와 index를 저장하는 배열을 생성
int[][] startPoints = new int[n][2];
for (int i = 0; i < n; i++) {
startPoints[i][0] = intervals[i][0];
startPoints[i][1] = i;
}
// 시작점을 기준으로 정렬
Arrays.sort(startPoints, Comparator.comparingInt(a -> a[0]));
// 결과를 저장할 배열 초기화
int[] result = new int[n];
// 각 구간의 우측 구간을 찾기
for (int i = 0; i < n; i++) {
int end = intervals[i][1];
// 이진 탐색으로 start >= end인 첫 번째 구간을 찾음
int left = 0, right = n;
while (left < right) {
int mid = left + (right - left) / 2;
if (startPoints[mid][0] >= end) {
right = mid;
} else {
left = mid + 1;
}
}
// 찾은 구간의 인덱스를 저장하거나, 없다면 -1 저장
if (left < n) {
result[i] = startPoints[left][1];
} else {
result[i] = -1;
}
}
return result;
}
}
'스터디 > 99클럽 코테 스터디 TIL' 카테고리의 다른 글
99클럽 코테 스터디 32일차 무인도 여행 (0) | 2024.08.22 |
---|---|
99클럽 코테 스터디 31일차 점프 점프 (0) | 2024.08.22 |
99클럽 코테 스터디 29일차 Longest Increasing Subsequence (0) | 2024.08.19 |
99클럽 코테 스터디 28일차 괄호 회전하기 (0) | 2024.08.19 |
99클럽 코테 스터디 27일차 할인 행사 (0) | 2024.08.18 |