Dev.baelanche

[백준 1931] 회의실배정 본문

Data Structure & Algorithm/PS - JAVA

[백준 1931] 회의실배정

baelanche 2019. 5. 7. 20:58
반응형

 

 

그리디 알고리즘 문제로 정렬 기준을 잘 잡아야 한다.

 

회의 정보에 대하여

1. 회의가 끝나는 시간이 가장 빠른순으로 오름차순 정렬한다.

2. 회의가 끝나는 시간이 같은 회의가 있다면 회의 시작시간이 빠른 것을 앞으로 한다.

 

많은 정렬 방법이 있겠지만 Comparator 를 구현하여 정렬했다.

 

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int a[][] = new int[n][2];
        
        for(int i=0; i<n; i++) {
            a[i][0] = sc.nextInt();
            a[i][1] = sc.nextInt();
        }
        
        Arrays.sort(a, new Comparator<int[]>() {
            public int compare(int[] start, int[] end) {
                if(start[1] == end[1]) {
                	return start[0] - end[0];
                }
                return start[1] - end[1];
            }
        });
        
        int cnt = 0;
        int preend = 0;
        for(int i=0; i<a.length; i++) {
            int s = a[i][0];
            int e = a[i][1];
            if(preend > s) continue;
            else {
                cnt++;
                preend = e;
            }
        }
        System.out.println(cnt);
    }
}
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 1074] Z  (0) 2019.05.07
[백준 11000] 강의실 배정  (0) 2019.05.07
[백준 1918] 후위표기식  (0) 2019.05.03
[백준 1992] 쿼드트리  (0) 2019.05.03
[백준 1780] 종이의 개수  (0) 2019.05.03
Comments