💡 오늘의 학습 키워드
- 이분탐색
✅ 오늘 공부한 내용
- 오늘의 리트코드 문제! 436번 Find Right Interval
👀 오늘의 회고
🤣 오늘의 문제점
🔥 어떤 시도를 했는가?
class Solution {
public int[] findRightInterval(int[][] intervals) {
// 구간에 대한 배열이 주어진다, intervals[i] = [starti, endi]이고 각각의 starti는 고유한 값을 가지고 있다.
// 구간 i의 오른쪽 구간은 startj >= end와 startj의 최소가 되는 구간 j이다. i는 아마 j와 같아 질 수 있다.
// 각 구간 i에 대한 오른쪽 구간 인덱스 배열을 반환한다.
// 구간 i에 오른쪽 구간이 없으면 인덱스 -1을 넣는다.
int n = intervals.length;
int[] arr = new int[n];
int[] ans = new int[n];
for(int i = 0; i < n; ++i)
arr[i] = intervals[i][0];
Map<Integer,Integer> map = new HashMap<>();
for(int i = 0; i < n; ++i)
map.put(arr[i],i);
Arrays.sort(arr);
for(int i = 0; i < n; ++i){
int val = binarySearch(arr,intervals[i][1]);
if(val == -1)
ans[i] = -1;
else
ans[i] = map.get(arr[val]);
}
return ans;
}
int binarySearch(int[] arr,int target){
int l = 0;
int r = arr.length - 1;
int ans = -1;
while(l <= r){
int mid = l + (r - l)/2;
if(arr[mid] == target)
return mid;
else if(arr[mid] > target){
ans = mid;
r = mid - 1;
}
else
l = mid + 1;
}
return ans;
}
}
👏 무엇을 새로 알았는가?
👩💻 내일은 무엇을 학습할 것인가?
- 항해 99 문제
- 원티드 ERD 및 구조도 생성 및 과제 수행
- 책 읽고 정리하고 블로그 개설
'개인 공부 > TIL' 카테고리의 다른 글
[ TIL - PGS ] 99클럽 코테 스터디 32일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.22 |
---|---|
[ TIL - PGS ] 99클럽 코테 스터디 31일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.21 |
[ TIL - PGS ] 99클럽 코테 스터디 29일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.19 |
[ TIL - PGS ] 99클럽 코테 스터디 28일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.19 |
[ TIL - PGS ] 99클럽 코테 스터디 27일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.17 |