새발블로그
[백준/Java] 1931 회의실 배정 본문
문제
https://www.acmicpc.net/problem/1931
풀이방법
시작시간이 빠르고, 종료시간이 빠른 순서대로 정렬 후
시작 - 종료(다음 회의 시작 확인(endIdx 지정))
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
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());
int[][] time = new int[N][2];
int endIdx = 0;
int cnt = 0;
for (int i = 0; i<N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
time[i][0] = Integer.parseInt(st.nextToken());
time[i][1] = Integer.parseInt(st.nextToken());
}
//종료시간 기준으로 정렬, 종료 시간이 같으면 시작시간 기준으로
Arrays.sort(time, (o1,o2)-> {
if (o1[1]==o2[1]) {
return o1[0]-o2[0];
}
return o1[1]-o2[1];
});
for (int i =0; i<N; i++) {
if (endIdx<=time[i][0]) {
cnt++;
endIdx = time[i][1];
}
}
System.out.println(cnt);
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
| [백준/Java] 10974 모든 순열 (0) | 2025.07.01 |
|---|---|
| [백준/Java] 11000 강의실 배정 (0) | 2025.07.01 |
| [백준/Java] 1436 영화감독 숌 (0) | 2025.07.01 |
| [백준/Java] 11652 카드 (0) | 2025.07.01 |
| [백준/Java] 1920 수 찾기 (1) | 2025.07.01 |