이전 회의가 끝나는 시간과 비교하면서 회의를 할 수 있으면 (t.start >= endTime)
회의를 하고 (cnt++)
끝나는 시간을 갱신해주면 된다.(endTime = t.end)
1. this.data - o.data 이면 오름차순 2. o.data - this.data 이면 내림차순 (이번 문제 정렬 방법) 2차원 배열 : 두 번째 값이 같으면 첫 번째는 오름차순 다르면 두 번째는 오름차순 3. if(o.data2 == this.data2) this.data1 - o.data2 else this.data2 - o.data2
package inflearn;
import java.util.*;
public class I0902 {
static int n;
static ArrayList<Times> arr;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
arr = new ArrayList<>();
for (int i = 0; i < n; i++) {
int h = sc.nextInt();
int w = sc.nextInt();
arr.add(new Times(h, w));
}
System.out.println(sol(arr));
}
static int sol(ArrayList<Times> arr) {
int ans = 0;
Collections.sort(arr);
int endTime = 0;
for (Times t : arr) {
if (t.start >= endTime) {
ans++;
endTime = t.end;
}
}
return ans;
}
static class Times implements Comparable<Times> {
int start, end;
public Times(int start, int end) {
this.start = start;
this.end = end;
}
@Override
public int compareTo(Times o) {
if (this.end == o.end) {
return this.start - o.start;
} else {
return this.end - o.end;
}
}
}
}