개발공부/algorithm

[백준][python] 1931.회의실배정 - Greedy

so.py 2021. 4. 3. 22:45
 

1931번: 회의실 배정

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

www.acmicpc.net

나의 코드

주어진 시작시간과 끝나는 시간을 1. 끝나는 시간의 오름차순 2. 시작하는 시간의 오름차순 으로 정렬해주어야한다. 그 후에는 각 회의의 끝나는 시간과 그 다음 회의의 시작 시간을 비교해주면서 카운트를 증가시켜주면 된다.

import sys

N = int(sys.stdin.readline())
meetings = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
meetings.sort(key = lambda x: (x[1], x[0]))

cnt = 1 
end_time = meetings[0][1] 
for i in range(1, N): 
    if meetings[i][0] >= end_time: 
        cnt += 1 
        end_time = meetings[i][1] 

print(cnt)