bfs로 풀어야 하나.. 엄청난 고민 끝에... 우선순위큐 문제라길래 풀이를 참고했다.. ㅎㅎ
문제 풀이 방법은 단순하다 (우선순위 큐를 이해한다는 조건 한에서...)
import heapq
n = int(input())
lect = []
# 강의 입력
for i in range(n):
s,t = map(int,input().split())
lect.append([s,t])
# 강의 시작 시간 기준 정렬
lect.sort()
room = []
heapq.heappush(room,lect[0][1]) # 첫 강의 종료 시간
for i in range(1,len(lect)):
# 강의 종료 시간(ex. 3) <= 다음 강의 시작 시간(ex. 4)
if room[0] <= lect[i][0]:
# 강의 연장
heapq.heappop(room) # 현재 강의 종료 시간 빼고
heapq.heappush(room,lect[i][1]) # 다음 강의 종료 시간 추가
# 강의 종료 시간 > 다음 강의 시간
else:
# 새로운 강의실 추가
heapq.heappush(room,lect[i][1])
print(len(room))