19598 - 최소 회의실 개수

LeeKyoungChang·2022년 6월 10일
0

Algorithm

목록 보기
158/203
post-thumbnail

📚 19598 - 최소 회의실 개수

최소 회의실 개수

 

이해

N개의 회의를 입력받는다.
회의의 시작시간과 끝나는 시간이 주어진다.
(이전에 풀었던 문제와 유사하다.)

이와 같은 문제들은 우선순위 큐를 이용하면 된다.

0 40
15 30
5 10

일 때,

0 40
5 10
15 30

으로 정렬한다.

이후, 도착시간을 기준으로 다음 시작시간이 더 작을 경우 queue에 삽입한다.
큰 경우는 queue에 데이터를 업데이트한다.

 

소스

import sys  
import heapq  
  
read = sys.stdin.readline  
  
n = int(read())  
  
room1 = []  
  
for _ in range(n):  
    s, e = map(int, read().split())  
    room1.append([s, e])  
  
room1.sort()  
  
answer = []  
heapq.heappush(answer, room1[0][1])  
  
for i in range(1, n):  
    if room1[i][0] < answer[0]:  
        heapq.heappush(answer, room1[i][1])  
    else:  
        heapq.heappop(answer)  
        heapq.heappush(answer, room1[i][1])  
  
print(len(answer))

사진1

 

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글