성장일기

[python] 백준 19598 - 최소 회의실 개수 본문

알고리즘 문제

[python] 백준 19598 - 최소 회의실 개수

김몽몽 2022. 1. 20. 11:09

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

Q> 주어진 회의를 모두 진행할 수 있는 회의실의 개수 구하기

회의의 시작 시간은 끝나는 시간보다 항상 작다

 

🧨아래 문제랑 똑같은 코드로 풀린다🤔

 

[python] 백준 11000 - 강의실 배정

Q> 시작시간과 끝나는 시간이 주어지고 최소한의 강의실을 사용해서 모든 수업이 가능하게 🧨 강의실을 가장 시작시간이 빠른 것으로 하나 만들어주고 이후에 비교하면서 끝나는 시간을 갱신

hyojeong94.tistory.com

import sys
import heapq
input = sys.stdin.readline

n = int(input().rstrip())  #회의 갯수 n

con = []  # 회의
for x in range(n) :
  start, end = map(int, input().split())
  con.append([start, end])  #시작시간, 끝나는시간 넣어주기

con.sort()  #정렬

rooms = []
heapq.heappush(rooms, con[0][1])  # 가장 첫 회의의 끝나는 시간을 넣어줌

for y in range(1,n):  # 첫 요소는 썼으니 1부터 시작
  if con[y][0] < rooms[0] : # 시작 시간이 현재 회의 끝나는 시간보다 빠르면
    heapq.heappush(rooms, con[y][1])  #끝나는 시간을 넣어줌(회의실+1)
  else:  # 시작 시간이 현재 회의 끝나는 시간보다 늦으면(이어서 쓸 수 있으면)
    heapq.heappop(rooms)  #이어하는 회의의 끝나는 시간으로 push
    heapq.heappush(rooms, con[y][1])

print(len(rooms))