250x250
반응형
Notice
Recent Posts
Recent Comments
Link
종식당
[백준]1931번 : 회의실 배정 - JAVA [자바] 본문
728x90
반응형
https://www.acmicpc.net/problem/1931
📝 문제 설명
먼저 회의의 수가 주어지고 회의 수만큼의 회의의 시작 시간과 끝나는 시간이 각각 주어진다. 회의실을 사용하는데 회의가 겹치지 않으면서 최대한 얼마나 사용할 수 있는지 구하면 된다.
✨ 제출 코드
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
List<int []> lst = new ArrayList<>();
for(int i = 0; i < N; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
int start = Integer.parseInt(st.nextToken());
int end = Integer.parseInt(st.nextToken());
lst.add(new int[] {start,end});
}
lst.sort((a,b) -> {
if(a[1] == b[1]){
return Integer.compare(a[0],b[0]);
}else{
return Integer.compare(a[1],b[1]);
}
});
int lastEndTime = 0;
int count = 0;
for(int [] item : lst){
int start = item[0];
int end = item[1];
if(start >= lastEndTime){
count ++;
lastEndTime = end;
}
}
System.out.println(count);
}
}
✌️ 코드 설명
먼저 회의가 끝나는 시간을 기준 오름차순으로 정렬했다. 만약 끝나는 시간이 갔다면 회의가 먼저 시작하는 순서로 정렬했다.
그 후, 이전의 회의가 끝나는 시간보다 다음 회의가 시작하는 시간이 더 클때만 개수를 세주고 회의가 끝나는 시간을 업데이트해준다.
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 5427번 : 불 - JAVA [자바] (0) | 2025.04.10 |
---|---|
[백준] 14503번 : 로봇 청소기 - JAVA [자바] (0) | 2025.04.05 |
[백준] 2206번 : 벽 부수고 이동하기 - JAVA [자바] (0) | 2025.03.13 |
[백준] 2468번 : 안전 영역 - JAVA [자바] (0) | 2025.03.11 |
[백준] 1644번 : 소수의 연속합 - JAVA [자바] (1) | 2025.03.06 |