
#풀이
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[][] rooms = new int[N][2];
int start,end;
for(int i = 0; i<N; i++){
st = new StringTokenizer(br.readLine());
start = Integer.parseInt(st.nextToken());
end = Integer.parseInt(st.nextToken());
rooms[i][0] = start;
rooms[i][1] = end;
}
Arrays.sort(rooms,(a,b)->{
if(a[1]==b[1])return a[0]-b[0];
return a[1]-b[1];
});
int ans = 1;
int now = 0;
int next = 1;
while(true){
if(rooms[now][1]<=rooms[next][0]){
now = next;
ans++;
}
next++;
if(next>= rooms.length)break;
}
System.out.println(ans);
}
}
#성능

#정리
1. 종료시간 오름차순으로 정렬하되, 종료시간이 같을 경우 시작시간 기준으로 정렬함.
2. now 포인터는 현재 선택된 회의 인덱스, next 포인터를 통해 다음 회의를 탐색하며, 현재 회의가 끝난 시점 이후에 시작하는 회의만 선택.
'PS' 카테고리의 다른 글
[백준] 15666번 : N과 M (12)[Java] (0) | 2025.07.08 |
---|---|
[백준] 9251번 : LCS[Java] (1) | 2025.07.08 |
[백준] 33888번 : 가오리 그래프[Java] (0) | 2025.07.07 |
[백준] 11404번 : 플로이드[Java] (0) | 2025.07.06 |
[백준] 1504번 : 특정한 최단 경로[Java] (0) | 2025.07.05 |