BaekJoon11000_강의실배정

최효준·2023년 3월 31일
0

알고리즘 문제풀이

목록 보기
52/61

문제

풀이

파이썬의 heapq 라이브러리를 사용할 줄 안다면 쉽게 풀 수 있는 문제이다.
heapq는 최소 힙 구조를 제공해주며 우선순위 큐라고 생각하면 된다.
먼저 각 수업들의 시간을 입력받고 시작시간을 기준으로 정렬해준뒤 heapq에 넣어가며 끝나는 시간보다 먼저 수업이 시작되면 강의실을 새로 열어주는 방식으로 풀어나가면 된다.

풀이코드

import sys
import heapq
input = sys.stdin.readline

n = int(input())

major = []

for _ in range(n):
    major.append(list(map(int,input().split())))

major.sort(key=lambda x : x[0])

room = []
heapq.heappush(room,major[0][1])

for i in range(1,n):
    if major[i][0] < room[0]:
        heapq.heappush(room,major[i][1])
        
    else:
        heapq.heappop(room)
        heapq.heappush(room,major[i][1])

print(len(room))
profile
Not to be Number One, but to be Only One

0개의 댓글