[BOJ] 그리디 알고리즘/1931번 - 회의실 배정

2088 단어 JavabojJava

문제

제출 답안

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int meetingNum = sc.nextInt();
		
		int[][] meetingInfo = new int[meetingNum][2];
		for(int i=0; i<meetingInfo.length; i++) {
			meetingInfo[i][0] = sc.nextInt();
			meetingInfo[i][1] = sc.nextInt();
		}
		
		Arrays.sort(meetingInfo, new Comparator<int[]>() {
			@Override
			public int compare(int[] o1, int[] o2) {	
				if(o1[1] == o2[1]) {
					return o1[0] - o2[0];	// 종료시간이 같을 경우 시작시간을 기준으로 정렬	
				}else {
					return o1[1] - o2[1];	// 종료시간이 다를 경우 종료시간을 기준으로 정렬
				}
			}
		});
		
		int allowMeetingCount = 0;
		int prevMeetingEndTime = 0;
		for(int j=0; j<meetingInfo.length; j++){
			if(meetingInfo[j][0] >= prevMeetingEndTime) {	//	직전 회의종료시간이 다음 회의시작시간보다 작을 경우
				allowMeetingCount++;
				prevMeetingEndTime = meetingInfo[j][1]; 
			}
		}
		
		System.out.println(allowMeetingCount);
		
        sc.close();
	}
}

출처

백준 알고리즘

좋은 웹페이지 즐겨찾기