막무가내로 삽질하는 알고리즘

Meeting Room1

Jungsoomin :) 2020. 10. 4. 02:32

모든 회의에 참석할 수 있다면 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