(https://www.acmicpc.net/problem/14469)
Please determine the minimum possible time at which all the cows could have completed processing.
→ 모든 과정이 끝날 때까지! 첫번째 소의 도착부터 마지막 소의 검문까지!
동시에 검문 받을 수 없다
도착 시간과 검문시간이 같을 수도 있다.
→ ex] 3분에 검문시간이 각각 5 2인 소들이 왔을 때, 결국 이 두마리의 소요시간은 3+5+2
→ ex] 3분에 검문시간이 각각 3 3인 소들이 왔을 때, 결국 이 두마리의 소요시간은 3+3+3
크게 고려 안해도 되는 조건같아서 따로 처리를 안해줬다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int endTime = 0;
int cowArr[][] = new int[N][2]; //[n][0] 도착시간, [n][1] 검문시간
for(int i=0;i<N;i++){
StringTokenizer st = new StringTokenizer(br.readLine());
cowArr[i][0] = Integer.parseInt(st.nextToken());
cowArr[i][1] = Integer.parseInt(st.nextToken());
}
Arrays.sort(cowArr, (o1,o2)-> o1[0]-o2[0]);
for(int i=0;i<N;i++){
if(endTime < cowArr[i][0]){
endTime=cowArr[i][0]+cowArr[i][1];
}
else
endTime += cowArr[i][1];
}
bw.write(endTime+"");
bw.flush();
bw.close();
}
}
다국어 문제가 한국어로 번역됐을때는 의미가 모호할 때가 있다.
전에 문제 풀었을 떄도, "입장시간..이라.. 좀 애매한데..?" 했던 기억이 있었다. 그럴 때는 그냥 원문을 보는게 문제 이해에 좀 더 도움이 된다.
이전에 풀어봤던 기억이 있어서 이클립스 말고 바로 백준 제출하면서 코드를 짰다. 그랬더니, 세미콜론이라던가 system을 systme 라는 오타라던가 컴파일에러가 연달아 세개가 뜨고, 예제 입력 안 해보고 제출을 하다보니 틀렸습니다!! 까지.. 어우 결국 이클립스 켰다^^..ㅎㅎ
→ 자만하지말자
헉 배열이나 Map으로 잘 안풀려서 고민이었는데, 2차원 배열이라니~ 잘 보고 갑니다 ^^