1. 유형
그리디, 우선순위 큐
2. 풀이
- 자료구조 : 우선순위큐
- 구현기능
- 마감시간이 큰 것 부터 내림차순 정렬
- 시작 시간을 갱신
시뮬레이션을 돌리면 아래처럼 진행될 것이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main {
static class Pair implements Comparable<Pair> {
int time;
int end;
public Pair(int time, int end) {
this.time = time;
this.end = end;
}
@Override
public int compareTo(Pair o) {
return o.end - this.end;
}
}
static int N;
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(in.readLine());
N = Integer.valueOf(st.nextToken());
PriorityQueue<Pair> pq = new PriorityQueue<>();
for (int i = 0; i < N; i++) {
int time, end;
st = new StringTokenizer(in.readLine());
time = Integer.valueOf(st.nextToken());
end = Integer.valueOf(st.nextToken());
pq.add(new Pair(time, end));
}
Pair tmp = pq.poll();
int start = tmp.end - tmp.time;
while(!pq.isEmpty()) {
Pair cur = pq.poll();
if(start < cur.end) {
start = start - cur.time;
}else {
start = cur.end - cur.time;
}
}
if(start < 0 ) {
System.out.println(-1);
}else
System.out.println(start);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 - 3055 탈출(Java) (0) | 2021.02.25 |
---|---|
백준 9322 - 철벽보안 알고리즘(Java) (0) | 2021.01.31 |
백준 17836 - 공주님을 구해라!(Java) (0) | 2021.01.24 |
백준 2304 - 창고 다각형(Java) (0) | 2021.01.24 |
백준 16986 - 인싸들의 가위바위보(Java) (0) | 2021.01.17 |