ebson

boj.kr/11000 강의실 배정 (gold5) 파이썬 풀이 본문

ALGORITHM STUDY WITH PYTHON/Greedy

boj.kr/11000 강의실 배정 (gold5) 파이썬 풀이

ebson 2023. 5. 14. 20:18

1. 강의시간 리스트 정렬

2. heapq에 가장 먼저 시작하는 강의의 종료시간 저장

3. 강의시간 리스트를 모두 순회

3.1. 강의시간 리스트 요소의 강의 시작시간이 heapq에 저장된 최소 종료시간보다 이르면 강의시간 리스트 요소의 강의 종료시간을 heapq에 저장

3.2. 강의시간 리스트 요소의 강의 시작시간이 heapq에 저장된 최소 종료시간보다 이르지 않으면 heapq에서 최소 종료시간을 heappop하고 강의시간 리스트 요소의 강의 종료시간을 heappush

4. heapq의 길이를 출력

 

import sys
input = sys.stdin.readline

N = int(input())
times = [list(map(int, input().split())) for _ in range(N)]
times.sort()

import heapq as hq
times_q  = []
hq.heappush(times_q, times[0][1])

for i in range(1, len(times)):
    if times[i][0] < times_q[0]:
        hq.heappush(times_q, times[i][1])
    else:
        hq.heappop(times_q)
        hq.heappush(times_q, times[i][1])

print(len(times_q))
Comments