Python/Softeer

[Softeer] 소프티어 강의실 배정(python)

Magin 2022. 8. 15. 16:58
728x90

문제)

 

 

알고리즘)

* 해당문제는 백준에 "회의실 배정"이란 이름의 문제 비슷합니다.

- 목표는 가장 많이 강의실 배정을 하는 것

- 처음에는 sorted, lambda를 사용하여 진행했으나 시간 초과!!

- heapq를 사용하여 각 입력시간에서 fin시간이 이른 시간부터 정렬

- 그후 기준점 과 수업 시작시간과 비교하여 사용가능하다면 cnt하고 v를 해당 start로 갱신

 

이를 입력부에서 받은 모든 값을 돌리고 최종 cnt 출력 

 

 

코드)

import sys
import heapq
input = sys.stdin.readline

n = int(input())

time = []
w = 0 #기준
cnt = 0 #강의실 수 카운트

for _ in range(n):
    start, fin = map(int, input().split())
    heapq.heappush(time, (fin, start))

while time:
    f, s = heapq.heappop(time)

    if s >= w: #기준시간보다 start시간이 늦는다면 사용가능
        cnt += 1
        w = f

print(cnt)

 

비슷한 문제)

728x90