코딩테스트/백준

[Dev-Ping9] 백준 1913번 - 회의실 배정 (Java)

DevPing9_ 2022. 1. 5. 22:06

 

 

# 문제 설명

스케줄링에 관한 지식이 있으면 쉽게 풀 수 있다.

회의가 끝나는 시간이 중요하다. 

 

1분에 시작해서 4분에 끝나는 회의와

3분에 시작해서 4분에 끝나는 회의가 있다고 할 때,

 

어차피 둘중 하나밖에 배정을 하지 못한다.

 

 

 

# 코드 구현

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;

public class Main{
    static int[][] meetings;
    

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringTokenizer st;
        meetings = new int[n][2];

        for(int i=0; i<n; i++){
            st = new StringTokenizer(br.readLine(), " ");
            meetings[i][0]=Integer.parseInt(st.nextToken());
            meetings[i][1]=Integer.parseInt(st.nextToken());
        }

        Arrays.sort(meetings, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                // TODO Auto-generated method stub
                if(o1[1]==o2[1]) return o1[0]-o2[0];
                else return o1[1]-o2[1];
            }
        });



        int cnt= 1;
        int end =meetings[0][1];
        for(int i=1;i<n;i++){
            if(end<=meetings[i][0]){
                cnt++;
                end=meetings[i][1];
            }
        }

        System.out.println(cnt);
        
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90