본문 바로가기
IT/알고리즘

백준 1931 회의실배정

by 어센트 2020. 3. 23.

 

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

 

1931번: 회의실배정

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

www.acmicpc.net

유명한 그리디 알고리즘 문제라고 한다. 회의시간이 가장 빠른 것을 기준으로 정렬을 해준다음 회의들을 순회하며 가장 빨리 끝나는 회의시간보다 늦게 시작하는 회의가 나올 때 마다 카운트를 하여 정답을 찾아냈다.

 

 

풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package 그리디_알고리즘;
import java.io.*;
import java.util.*;
public class 회의실배정
{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[][] meet = new int[n][2];
        for (int i = 0; i <n ; i++) {
            StringTokenizer 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];
                }
                else return o1[1]-o2[1];
            }
        });
        int endT = -1;
        int res = 0;
        for (int i = 0; i < meet.length; i++) {
            if(meet[i][0]>=endT){
                endT = meet[i][1];
                res++;
            }
        }
        System.out.println(res);
    }
}
 
cs

'IT > 알고리즘' 카테고리의 다른 글

백준7576 토마토 (자바)  (0) 2020.03.27
백준 1012 유기농배추  (0) 2020.03.23
백준2667 단지번호 붙이기  (0) 2020.03.21
백준15652 n과m(4)  (0) 2020.03.19
백준1003 피보나치 함수 (동적계획법)  (0) 2020.03.12