https://www.acmicpc.net/problem/11000
import sys
import heapq
input = sys.stdin.readline
N = int(input())
li = list()
for _ in range(N):
start, end = map(int, input().split(" "))
li.append([start, end])
# 시작 시간을 기준으로 정렬
li.sort()
# 우선순위 큐 (최소 힙) - 강의실들의 종료 시간만 저장
heap = []
for start, end in li:
if heap and heap[0] <= start:
# 가장 빨리 끝나는 강의실이 이 수업 시작 전이라면 재사용 가능
heapq.heappop(heap)
# 새 강의실 추가 또는 재사용 후 종료시간 갱신
heapq.heappush(heap, end)
# 힙에 남아있는 강의실 수 = 필요한 최소 강의실 수
print(len(heap))'코딩테스트 > 코딩테스트 문제풀이' 카테고리의 다른 글
| [Python] 백준 <18870-좌표 압축> (0) | 2025.05.21 |
|---|---|
| [Python] 백준 <10814-나이순 정렬> (0) | 2025.05.21 |
| [Python] 백준 <2667-단지번호붙이기> (0) | 2025.05.19 |
| [Python] 프로그래머스 <게임 맵 최단거리> (0) | 2025.05.19 |
| [Python] 백준 <1260-DFS와 BFS> (0) | 2025.05.19 |