문제 : 내 코드를 그대로 복사 붙여넣기해서 제출하였더니 백준의 런타임에러가 발생했다 런타임 에러
런타임 에러 (main class Main)
해결 : IDE에서 코드를 써서 상단에 package를 제출때 지우지 않아서 생겼던일
문제 : 회의의 시작 시간이 이전 회의의 종료 시간과 같을 수 있다는 점을 고려하지 않으면 종료 시간이 동일한 회의들 중에서 시작 시간이 종료 시간과 같은 회의가 먼저 정렬될 경우 최적의 회의 선택 과정이 달라져서 결과 개수가 틀려질 수 있다.
해결 : 종료시간이 같을경우 시작시간을 오름차순으로 정렬
문제예시
(3, 3),(1, 3), (3,4)
일 경우 (1,3) -> (3, 3) -> (3, 4)로 3개지만 만약 (3, 3)이 먼저 온다면 회의 갯수가 2개가 된다.
// 수정 전
Arrays.sort(arr, (a, b)-> a[1]-b[1]);
// 수정 후
Arrays.sort(arr, (a, b)-> a[1]!= b[1]? a[1]-b[1] : a[0]-b[0]);
package problem.p1931;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] arr = new int[n][2];
for(int i = 0; i<n; i++){
for(int j=0;j<2;j++){
arr[i][j] = sc.nextInt();
}
}
Arrays.sort(arr, (a, b)-> a[1]!= b[1]? a[1]-b[1] : a[0]-b[0]);
int count = 0;
int endTime = -1;
for(int[] a : arr){
if(a[0]>= endTime){
endTime = a[1];
count++;
}
}
System.out.println(count);
}
}