문제풀이/백준(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)
# 첫 기준을 끝나는 시간으로 잡은 이유는 끝나는 시간이 가장 짧은 시간부터 시작해야 최대한 많은 회의를 회의시간이 겹치지 않고 진행할 수 있기 때문이다.
#시작 시간이 회의의 마지막 시간보다 크거나 같지 않을 경우엔 다음 회의의 마지막 시간과 비교를 하며 진행된다.