본문 바로가기
알고리즘 & 자료구조/백준

백준 1931

by 신재권 2021. 11. 3.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;


public class Main1931 {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine()); //회의 수 N 
		int[][] time = new int[N][2];
		// time[][0] = 시작시간
		// time[][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, 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 cnt = 0;
		int endTime = 0;
		
		for(int i=0; i<N; i++){
			
			//종료시간이 다음 회의 시작 시간보다 작거나 같으면 갱신
			if(endTime <= time[i][0]){
				endTime = time[i][1];
				cnt ++;
			}
		}
		System.out.println(cnt);
		
	}

}

'알고리즘 & 자료구조 > 백준' 카테고리의 다른 글

백준 1260  (0) 2021.11.07
백준 2798  (0) 2021.11.05
백준 11047  (0) 2021.11.02
백준 5585  (0) 2021.11.01
백준 1107  (0) 2021.09.30