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 |