카테고리 없음

[백준/JAVA] 1931번: 회의실 배정

_SIHA_ 2022. 8. 12. 00:04

📖  문제 링크

https://www.acmicpc.net/problem/1931

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

 

 

  최종 코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;


public class Main {

	public static void main(String[] args) throws Exception{				

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = null;
		int[][] meet;
		int count = 1;
		int end;
		
		
		int N = Integer.parseInt(br.readLine());
		meet = new int[N][2];
		
		for(int i=0;i<N;i++) {
			st = new StringTokenizer(br.readLine());
			meet[i][0] = Integer.parseInt(st.nextToken());
			meet[i][1] = Integer.parseInt(st.nextToken());
		}
		
		
		Arrays.sort(meet, 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];
			}
		});
		

		end = meet[0][1];
		
		for(int i=1;i<N;i++) {		//다음 회의 시작이 현재 종료시간보다 같거나 크면 count
			if(end <= meet[i][0]) {
				count++;
				end = meet[i][1];
			}
		}
		
		
		System.out.println(count);
		
	
	}//main	
	
}//end class