https://www.acmicpc.net/problem/1931
분류 : 그리디 알고리즘
더보기
import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
static Myscanner sc = new Myscanner();
static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
public static void main(String[] args) throws IOException {
int TC = sc.nextInt();
ArrayList<Time> al = new ArrayList<Time>();
while (TC-- > 0) {
int S = sc.nextInt();
int E = sc.nextInt();
al.add(new Time(S, E));
}
Collections.sort(al);
int count = 0;
int start = -1;
for (int j = 0; j < al.size(); j++) {
if (al.get(j).S >= start) {
start = al.get(j).E;
count++;
}
}
out.println(count);
out.flush();
}
}
class Time implements Comparable<Time> {
int S, E;
Time(int S, int E) {
this.S = S;
this.E = E;
}
@Override
public int compareTo(Time o) {
if (this.E < o.E) {
return -1;
} else if (this.E > o.E) {
return 1;
}
return this.S <= o.S ? -1 : 1;
}
}
class Myscanner {
BufferedReader br;
StringTokenizer st;
Myscanner() {
br = new BufferedReader(new InputStreamReader(System.in));
}
String next() {
while (st == null || !st.hasMoreElements()) {
try {
st = new StringTokenizer(br.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
return st.nextToken();
}
int nextInt() {
return Integer.parseInt(next());
}
long nextLong() {
return Long.parseLong(next());
}
double nextDouble() {
return Double.parseDouble(next());
}
}
끝나는 시간 대로 정렬을 한 후에 회의가 끝나는 시간이 같을 경우
시작 시간을 빠른순으로 정렬 후에 주어진 모든 회의를 확인하며 회의 수를 증가 시킨다.
'PS' 카테고리의 다른 글
[BOJ]1620번: 나는야 포켓몬 마스터 이다솜 (0) | 2017.04.19 |
---|---|
[BOJ]1874번 : 스택 수열 (0) | 2017.04.17 |
[BOJ]1600번 : 말이 되고픈 원숭이 (0) | 2017.04.14 |
[BOJ]9373번 : 복도 뚫기 (0) | 2017.04.06 |
[BOJ1005번 : ACM Craft (0) | 2017.04.04 |