티스토리 뷰

https://www.acmicpc.net/problem/11000

 

11000번: 강의실 배정

첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (1 ≤ Si < Ti ≤ 109)

www.acmicpc.net


각 수업의 시간이 겹칠 경우 강의실이 추가된다. 단, 한 수업의 끝 시간과 시작 시간이 동일하면 겹치지 않는 것으로 한다. 

 

먼저 수업들을 시작 시간을 기준으로 정렬한다. 그리고 이미 시작한 수업을 끝나는 시간을 기준으로 우선순위 큐에 삽입한다. 이미 시작한 수업의 끝 시간다음에 시작할 수업의 시작 시간을 비교하며 수업이 겹치지 않는 경우, 우선순위 큐에서 수업을 제거한다.

 

최종적으로 우선순위 큐에는 수업 시간이 겹치는 수업들만 남아있게된다.

 

수업이 끝나는 시간을 기준으로 정렬하지 않는 것에 대해 의문을 가질 수 있다. 만약 끝 시간을 기준으로 정렬하면, 늦게 시작 했지만 먼저 끝나는 수업이 있는 경우가 있을 수 있다. 이로 인해 일찍 시작하는 수업이 지연된다. 따라서 끝 시간을 기준으로 정렬하게 되면 위 문제는 해결할 수 없다.

 

Python

Java

728x90

'PS > 백준' 카테고리의 다른 글

[백준] 9251 LCS  (0) 2021.06.16
[백준] 12865 평범한 배낭  (0) 2021.06.16
[백준] 2250 트리의 높이와 너비  (0) 2021.06.12
[백준] 2263 트리 순회  (0) 2021.06.01
[백준] 18111 마인크래프트  (0) 2021.04.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함