반응형
package codinginterview;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class BJ1931 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(br.readLine());
int [][] time = new int[n][2]; // 0은 시작 , 1은 종료
for(int i =0; i<n; i++) {
st = new StringTokenizer(br.readLine()," ");
time[i][0] = Integer.parseInt(st.nextToken()); //시작
time[i][1] = Integer.parseInt(st.nextToken()); //종료
}
Arrays.sort(time, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
// 종료시간이 같을 경우 시작시간이 빠른 순으로 정렬해야한다.
if(o1[1] == o2[1]) {
return o1[0] - o2[0]; //음수 or 0이면 자리 안바뀜, 양수면 자리 바뀜
}
return o1[1] - o2[1]; //종료시간 앞에가 더 크면 자리 바꿈 --> 종료시간 작은 순으로 정렬
}
});
int count = 0;
int prev_end_time = 0;
for(int i=0; i<n; i++) {
//직전 종료시간이 다음 회의 시작 시간보다 작거나 같다면 더해주기
if(prev_end_time <= time[i][0]) {
prev_end_time = time[i][1];
count++;
}
}
System.out.println(count);
}
}
이것은 어려워서 .....
블로그 베꼈는데요
풀수 없었던 이유 ..
Comparator 를 몰랐네요 ㅋ
아니 언젠가는 써봤겠지만 제 기억속에는 없네요
다신 잊지 않기 ><
머 제가 문제 다풀면 천재게요~?
열심히해야져 그럼 eman
반응형
'백준알고리즘' 카테고리의 다른 글
백준 2744번 대소문자 바꾸기 (0) | 2023.01.06 |
---|---|
[Java][그리디 알고리즘] 백준 2217 로프 (0) | 2021.05.02 |
[Java][그리디 알고리즘] 백준 11047 동전 0 (0) | 2021.04.28 |
[Java][정렬] 백준 1026 보물 (0) | 2021.04.27 |
백준 1717 집합의 표현 Union-Find JAVA (0) | 2020.07.10 |
댓글