본문 바로가기
백준/그리디

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

by 똥먹는낙타 2022. 3. 26.
728x90
반응형

19598번: 최소 회의실 개수 (acmicpc.net)

 

19598번: 최소 회의실 개수

2개 회의실로 3개 회의를 모두 진행할 수 있다. 예를 들어, 첫번째 회의실에서 첫번째 회의를 진행하고 두번째 회의실에서 두번째 회의와 세번째 회의를 진행하면 된다. 1개 회의실로 3개 회의

www.acmicpc.net

문제

서준이는 아빠로부터 N개의 회의를 모두 진행할 수 있는 최소 회의실 개수를 구하라는 미션을 받았다. 각 회의는 시작 시간과 끝나는 시간이 주어지고 한 회의실에서 동시에 두 개 이상의 회의가 진행될 수 없다. 단, 회의는 한번 시작되면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작 시간은 끝나는 시간보다 항상 작다. N이 너무 커서 괴로워 하는 우리 서준이를 도와주자.

입력

첫째 줄에 배열의 크기 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 231−1보다 작거나 같은 자연수 또는 0이다.

출력

첫째 줄에 최소 회의실 개수를 출력한다.

 

예제 입력 1 복사

3
0 40
15 30
5 10

예제 출력 1 복사

2

예제 입력 2 복사

2
10 20
5 10

예제 출력 2 복사

1

 

# Code

import heapq
import sys

input = sys.stdin.readline

n = int(input())

time = [list(map(int, input().split())) for _ in range(n)]
time = sorted(time, key = lambda x : x[0])

queue = []
heapq.heappush(queue, time[0][1])

for i in range(1, n):
    if queue[0] <= time[i][0]:
        heapq.heappop(queue)
    heapq.heappush(queue, time[i][1])

print(len(queue))

# Comment

백준 11000 강의실 배정 문제와 풀이가 같다. 말만 살짝 다르고 같은 유형의 문제이다.

728x90
반응형

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

[백준] #2812 크게 만들기 (python)  (0) 2022.03.29
[백준] #2141 우체국 (python)  (2) 2022.03.28
[백준] #1092 배 (python)  (0) 2022.03.24
[백준] #2212 센서 (python)  (0) 2022.03.22
[백준] #20044 Project Teams (python)  (0) 2022.03.22

댓글