문제풀이/백준(Boj) 문제풀이

[백준][그리디 알고리즘] 1931. 회의실 배정 (파이썬/Python)

얄루몬 2021. 9. 20. 16:07

import sys
input = sys.stdin.readline

n = int(input())
time = [[0]*2 for _ in range(n)]


for i in range(n):
    start, end = map(int,input().split())
    time[i][0] = start
    time[i][1] = end

#끝나는 시간을 먼저 정렬한 뒤 시작시간 정렬
time = sorted(time, key=lambda a: (a[1],a[0]))
end_time = time[0][1]
cnt = 1


#시작 시간이 회의의 마지막 시간보다 크거나 같을 경우
for i in range(1, n):
    if time[i][0] >= end_time:
        cnt+=1
        end_time = time[i][1]

print(cnt)

# 첫 기준을 끝나는 시간으로 잡은 이유는 끝나는 시간이 가장 짧은 시간부터 시작해야 최대한 많은 회의를 회의시간이 겹치지 않고 진행할 수 있기 때문이다.

 

#시작 시간이 회의의 마지막 시간보다 크거나 같지 않을 경우엔 다음 회의의 마지막 시간과 비교를 하며 진행된다.