이번 문제는 그리디 알고리즘과 최소힙을 이용하여 해결하였다. 전에 풀었던 강의실 문제와 거의 유사한 문제였다. 회의 정보를 입력받아 최소힙에 담고, 이를 하나씩 꺼내어 회의실 최소힙의 첫번째 원소와 비교하여 회의 시작 시간이 최소힙의 원소보다 크거나 같을 경우 회의실 최소힙을 heappop해주고, heappush로 현재 회의의 종료시간을 넣어준다. 미만인 경우에는 회의실 최소힙에 heappush로 현재 회의의 종료시간을 넣어주도록 하고, 최종적으로 회의실 최소힙의 길이를 출력하였다.
import heapq
n = int(input())
meeting = []
for _ in range(n):
s, e = map(int, input().split())
heapq.heappush(meeting, (s, e))
rooms = []
for i in range(n):
cur = heapq.heappop(meeting)
if not rooms:
heapq.heappush(rooms, (cur[1]))
else:
if rooms[0] <= cur[0]:
heapq.heappop(rooms)
heapq.heappush(rooms, cur[1])
else:
heapq.heappush(rooms, cur[1])
print(len(rooms))