모든 회의에 참석할 수 있다면 true
모든 회의에 참석할 수 없다면 false
input [[0,30],[5,10],[15,20]]
output false
input [[7,10],[2,4]]
output true
- 핵심, 회의의 시작시간 기준으로 정렬해야한다.
- 회의의 종료시간이 다음회의의 시작시간보다 크면 안된다.
import java.util.Arrays;
import java.util.Comparator;
public class MeetingRoom {
public static void main(String[] args) {
Interval interval1 = new Interval(0, 30);
Interval interval2 = new Interval(5, 10);
Interval interval3 = new Interval(15, 20);
Interval interval4 = new Interval(7, 10);
Interval interval5 = new Interval(2, 4);
Interval[] intervals = new Interval[]{interval4,interval5};
System.out.println(solve(intervals));
}
private static boolean solve(Interval[] intervals) {
Arrays.sort(intervals, new Comparator<Interval>() {
@Override
public int compare(Interval o1, Interval o2) {
return o1.start - o2.start;
}
});
for(int i =1; i<intervals.length; i++){
if(intervals[i].start < intervals[i-1].end){
return false;
}
}
return true;
}
}
'막무가내로 삽질하는 알고리즘' 카테고리의 다른 글
우선순위 큐 (0) | 2020.10.18 |
---|---|
Merge Interval (0) | 2020.10.11 |
DailyTemperature (0) | 2020.10.11 |
TwoSum (0) | 2020.10.11 |
MoveZeros (0) | 2020.10.04 |