반응형
- 알고리즘 분류 : 그리디, 우선순위 큐
- 사용 언어 : JAVA
소스 설명은 주석을 참고해주세요.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main {
public static class Time implements Comparable<Time>{
int start;
int end;
public Time(int s, int e) {
start = s;
end = e;
}
// 정렬 기준 정의
@Override
public int compareTo(Time o) {
if(this.start == o.start) {
return this.end - o.end;
}
else {
return this.start - o.start;
}
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Time[] times = new Time[N];
for(int i=0; i<N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int start = Integer.parseInt(st.nextToken());
int end = Integer.parseInt(st.nextToken());
times[i] = new Time(start, end);
}
// 시작시간, 종료시간 오름차순으로 정렬
Arrays.sort(times);
// 숫자 오름차순 정렬
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.offer(times[0].end);
for(int i=1; i<N; i++) {
if(times[i].start >= pq.peek()) {
pq.poll();
}
pq.offer(times[i].end);
}
System.out.println(pq.size());
}
}
반응형
'Algorithm' 카테고리의 다른 글
[BAEKJOON] 12904번 : A와 B (JAVA) (0) | 2023.02.12 |
---|---|
[Programmers] 개인정보 수집 유효기간 (Java) (0) | 2023.02.05 |
[BAEKJOON] 1715번 : 카드 정렬하기 (JAVA) (0) | 2023.01.28 |
[BAEKJOON] 11779번 : 최소비용 구하기2 (JAVA) (0) | 2023.01.24 |
[BAEKJOON] 17396번 : 백도어 (JAVA) (0) | 2023.01.23 |