[BOJ] 1931 회의실 배정

SSOYEONG·2022년 4월 27일
0

Problem Solving

목록 보기
35/60
post-thumbnail

🔗 Problem

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

👩‍💻 Code

package baekjoon;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.StringTokenizer;

// 회의실 배정

public class BJ1931 {
	
	static class Meeting implements Comparable<Meeting> {
		
		int start;
		int end;
		
		Meeting(int start, int end){
			this.start = start;
			this.end = end;
		}

		@Override
		public int compareTo(Meeting o) {
			
			if(this.end == o.end) {
				return this.start - o.start;
			}
			return this.end - o.end;
		}
	}
	
	static int n;
	static Meeting[] sked;
	static int cnt;
	static int endTime;
	
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		n = Integer.parseInt(br.readLine());
		sked = new Meeting[n];
		
		StringTokenizer st;
		for(int i = 0; i < n; i++) {
			st = new StringTokenizer(br.readLine());
			int s = Integer.parseInt(st.nextToken());
			int e = Integer.parseInt(st.nextToken());
			Meeting m = new Meeting(s, e);
			sked[i] = m;
		}
		
		Arrays.sort(sked);
		
		cnt++;
		endTime = sked[0].end;
		for(int i = 1; i < sked.length; i++) {
			if(sked[i].start >= endTime) {
				cnt++;
				endTime = sked[i].end;
			}
		}
		
		System.out.println(cnt);
	}

}

📌 Note

아이디어

  • Meeting 클래스 생성 후 종료시간 기준 오름차순 sorting, 종료시간이 같다면 시작시간 기준 오름차순 sorting
  • 시작시간이 이전 종료시간보다 이후인 경우, 회의실에 배정할 수 있음
profile
Übermensch

0개의 댓글