코딩,안되면 될때까지

1931-회의실 배정 본문

백준/백준-파이썬

1931-회의실 배정

soo97 2022. 1. 27. 22:32
728x90
반응형

<문제>

https://www.acmicpc.net/problem/1931

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

<풀이>

1) 끝나는 시간이 빠른 회의부터 시작해야 최대한 많은 회의를 할 수 있다.

2) 끝나는 시간을 기준으로 오름차순 정렬을 한다.

3) 다음 회의시간의 시작시간이 이전회의의 시작시간보다 늦은 시각이라면 회의실 이용이 가능하므로 회의실을 배정할  수 있다.

 

-파이썬-

# N : 회의수 
# start : 회의시작시간, end : 회의 끝나는 시간 (시작시간 끝나는 시간 같을 수 있다)
# 진행가능한 회의의 최대갯수

N = int(input())
meeting = []
for i in range(N):
    start, end = map(int,input().split())
    meeting.append([start,end])
meeting.sort(key = lambda x:(x[1],x[0]))
count=1
end_time = meeting[0][1]
for i in range(1,len(meeting)): #i : 튜플 인덱스
    if meeting[i][0]>=end_time:
        count+=1
        end_time = meeting[i][1]
        
            

print(count)

-자바-

import java.util.*;
import java.io.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(bf.readLine());
        int [][] meeting = new int[N][2];
        StringTokenizer st;
        for(int i = 0;i<N;i++){
            st = new StringTokenizer(bf.readLine()," ");
            meeting[i][0] = Integer.parseInt(st.nextToken()); 
            meeting[i][1] = Integer.parseInt(st.nextToken());
           
        }
        Arrays.sort(meeting, new Comparator<int[]>(){
            public int compare(int[] o1, int[] o2){
                if(o1[1]==o2[1]){
                    return o1[0] - o2[0];
                }
                return o1[1] - o2[1];
            }
        }); 
        // Arrays.sort(meeting,Comparator.comparingInt(o1->o1[1]));
        int count = 0;
        int end_time = 0;
        for(int i = 0;i<N;i++){
            if(meeting[i][0]>=end_time){
                count++;
                end_time = meeting[i][1];
            }
        }
        System.out.println(count);
    }
}
728x90
반응형

'백준 > 백준-파이썬' 카테고리의 다른 글

18428-감시피하기  (0) 2022.02.26
16234-인구이동  (0) 2022.02.25
11047-동전0  (0) 2022.01.25
11399-ATM  (0) 2022.01.23
2839-설탕  (0) 2022.01.21
Comments