BAEKJOON 6068 Gold Ⅴ 시간관리 자바
1. 종료 시간순 정렬
2. 오늘까지 시간 관리가 가능한지 확인
3. 작업 시작에 걸리는 시간 절약
import java.util.*;
import java.io.*;
public class Main {
public static void main(String() args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Todo() input = new Todo(N);
StringTokenizer st = null;
for (int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine());
int t = Integer.parseInt(st.nextToken());
int s = Integer.parseInt(st.nextToken());
Todo todo = new Todo(t, s);
input(i) = todo;
}
Arrays.sort(input, new Comparator<Todo>() {
@Override
public int compare(Todo o1, Todo o2) {
return o1.s==o2.s ? o2.t-o1.t : o1.s-o2.s;
}
});
int answer = Integer.MAX_VALUE;
int prev = 0;
for (int i=0; i<N; i++) {
int curr = prev + input(i).t;
if (input(i).s<curr) {
answer = -1;
break;
}
answer = Math.min(answer, input(i).s-curr);
prev = curr;
}
System.out.println(answer);
}
static class Todo {
int t, s;
Todo (int t, int s) {
this.t = t;
this.s = s;
}
}
}
https://www.acmicpc.net/problem/6068
6068번: 시간 관리
열심히 일하는 농부 John은 시간을 효율적으로 관리하는 법을 배웠습니다. 그는 N개의 작업에 번호를 매겼습니다(1<=N<=1000). John의 시간을 효율적으로 사용합니다(우유 우유, 마구간 청소, 울타리 수리 등).
www.acmicpc.net