1931번: 회의실 배정
https://www.acmicpc.net/problem/1931
# 코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
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());
/*
time[][0] 은 시작시점을 의미
time[][1] 은 종료시점을 의미
*/
int[][] time = new int[N][2];
StringTokenizer st;
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine(), " ");
time[i][0] = Integer.parseInt(st.nextToken()); // 시작시간
time[i][1] = Integer.parseInt(st.nextToken()); // 종료시간
}
// 끝나는 시간을 기준으로 정렬하기 위해 compare 재정의
Arrays.sort(time, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
// 종료시간이 같을 경우 시작시간이 빠른순으로 정렬해야한다.
if(o1[1] == o2[1]) {
return o1[0] - o2[0];
}
return o1[1] - o2[1];
}
});
int count = 0;
int prev_end_time = 0;
for(int i = 0; i < N; i++) {
// 직전 종료시간이 다음 회의 시작 시간보다 작거나 같다면 갱신
if(prev_end_time <= time[i][0]) {
prev_end_time = time[i][1];
count++;
}
}
System.out.println(count);
}
}
'코딩테스트 > 자바 문제풀이' 카테고리의 다른 글
[CLASS 3: BFS] 백준 2667 단지번호붙이기 (0) | 2024.11.16 |
---|---|
[CLASS 3: BFS] 백준 2178 미로 탐색 (0) | 2024.11.15 |
[CLASS 3: 플로이드 워셜] 백준 1389 케빈 베이컨의 6단계 법칙 (0) | 2024.11.13 |
[CLASS 3: 슬라이딩윈도우] 백준 30804 과일 탕후루 (0) | 2024.11.12 |
[CLASS 3: BFS] 백준 21736 헌내기는 친구가 필요해 (0) | 2024.11.11 |