
알고리즘 분류 : 그리디 알고리즘
난이도 : 골드5
출처 : 백준 - 최소 회의실 개수


그리디 알고리즘으로 문제를 해결한다.
시작시간 -> 종료시간 순으로 오름차순 정렬한다.
우선순위 큐를 이용해서 최소한의 회의실 갯수를 계산한다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Meeting meetingArr[] = new Meeting[N];
for(int i=0;i<N;i++) {
StringTokenizer st = new StringTokenizer(br.readLine()," ");
meetingArr[i] = new Meeting(Integer.parseInt(st.nextToken()),Integer.parseInt(st.nextToken()));
}
Arrays.sort(meetingArr);
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.offer(meetingArr[0].e);
for(int i=1;i<N;i++) {
if(pq.peek()<=meetingArr[i].s)
pq.poll();
pq.offer(meetingArr[i].e);
}
System.out.println(pq.size());
}
}
class Meeting implements Comparable<Meeting>{
int s;
int e;
public Meeting(int s, int e) {
this.s = s;
this.e = e;
}
@Override
public int compareTo(Meeting o) {
if(this.s!=o.s)
return this.s - o.s;
return this.e-o.e;
}
}

회의실 문제는 우선순위큐!!! 회의실 문제는 우선순위큐!!! 회의실 문제는 우선순위큐!!! 회의실 문제는 우선순위큐!!! 회의실 문제는 우선순위큐!!! 회의실 문제는 우선순위큐!!! 회의실 문제는 우선순위큐!!! 회의실 문제는 우선순위큐!!! 회의실 문제는 우선순위큐!!! 회의실 문제는 우선순위큐!!!