https://www.acmicpc.net/problem/1263
1263번: 시간 관리
진영이는 캠프 조교를 온 후 효율적으로 시간 관리를 해야 한다는 것을 깨달았다. 진영이는 하루에 해야 할 일이 총 N개가 있고 이 일들을 편하게 1번부터 N번까지 차례대로 번호를 붙였다. 진영
www.acmicpc.net
문제
코드
import java.io.*;
import java.util.*;
public class Main {
private static final BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws IOException {
int n = Integer.parseInt(bf.readLine());
int[][] arr = new int[n][2];
StringTokenizer st;
for(int i = 0 ; i < n ; i++) {
st = new StringTokenizer(bf.readLine());
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr, (o1, o2) -> {
if(o1[1] == o2[1]) return o1[0]-o2[0];
return o1[1]-o2[1];
});
int startTime = arr[0][1] - arr[0][0];
int time = 0;
boolean flag = false;
for(int i = 0 ; i < n ; i++) {
time += arr[i][0];
if(arr[i][1] - time >= 0) {
if(startTime > arr[i][1] - time) {
startTime = arr[i][1] - time;
}
flag = true;
}
else {
bw.write("-1");
flag = false;
break;
}
}
if(flag) {
bw.write(Integer.toString(startTime));
}
bf.close();
bw.flush();
bw.close();
}
}
만약 A라는 일을 하다가 B라는 일을 하고 다시 A라는 일을 할 수 있다는 것을 생각하면서 풀어야했습니다.
'코딩테스트' 카테고리의 다른 글
[백준] 3020번 '개똥벌레' - Java (1) | 2023.08.02 |
---|---|
[백준] 1253번 '좋다' - Java (1) | 2023.08.01 |
[백준] 5582번 '공통 부분 문자열' - Java (1) | 2023.07.29 |
[백준] 1937번 '욕심쟁이 판다' - Java (1) | 2023.07.28 |
[백준] 1756번 '피자 굽기' - Java (0) | 2023.07.27 |