미팅룸은 1개이고 예약된 시간들이 보여진다.
[시작시간, 종료시간] 형태로 배열로 받게 되며
겹치는 회의 시간이 있을 경우, false를 리턴하게 된다.
input : [[0,30],[5,10],[15,20]]
output : false
intput : [[7,10],[2,4]]
output : false
package project;
import java.util.Arrays;
import java.util.Comparator;
class Interval{
int start;
int end;
Interval(){
this.start = 0;
this.end =0;
}
Interval(int s, int e){
this.start = s;
this.end = e;
}
}
public class MeetingRoom {
//start로 소팅
//현재의 start타임과 end타임이 겹치면 안되는 것.
public static void main(String[] args) {
MeetingRoom a = new MeetingRoom();
Interval in1 = new Interval(7,10);
Interval in2 = new Interval(2,4);
Interval[] intervals = {in1, in2};
System.out.println(a.solve(intervals));
}
public boolean solve(Interval[] intervals) {
if(intervals==null) return false;
Arrays.sort(intervals, Comp);
print(intervals);
for(int i=1; i<intervals.length; i++){
if(intervals[i-1].end > intervals[i].start){
return false;
}
}
return true;
}
Comparator<Interval> Comp = new Comparator<Interval>(){
@Override
public int compare(Interval o1, Interval o2){
//오름 차순으로 소팅
return o1.start - o2.start;
}
};
public void print(Interval[] intervals) {
for(int i=0; i<intervals.length; i++) {
Interval in = intervals[i];
System.out.println(in.start+" "+in.end);
}
}
}