본문 바로가기

백준

[백준] 1931 회의실 배정 [자바]

 


https://st-lab.tistory.com/243

 

자바 [JAVA] - Comparable 과 Comparator의 이해

아마 이 글을 찾아 오신 분들 대개는 Comparable과 Comparator의 차이가 무엇인지 모르거나 궁금해서 찾아오셨을 것이다. 사실 알고보면 두 개는 그렇게 어렵지 않으나 아무래도 자바를 학습하면서 객

st-lab.tistory.com

 

 


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]; //0 시작시간 1 끝나는 시간
		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, (e1, e2) -> {
			if(e1[1] == e2[1]) //끝나는 시간이 같다면 시작시간이 짧은것 부터
				return e1[0] - e2[0];
			else
				return e1[1] - e2[1];
		});
		int temp = time[0][1]; //4
		int cnt = 1;
		for(int i = 1; i < N; i++) { //끝나는 시간을 정렬함
			if(time[i][0] >= temp) {
				temp = time[i][1];
				cnt++;
			}
		}
		System.out.println(cnt);
	}
}