성장일기

[python] 백준 1931 - 회의실 배정 본문

알고리즘 문제

[python] 백준 1931 - 회의실 배정

김몽몽 2022. 1. 19. 11:33

Q> 한 개의 회의실이 있는데 이를 사용하고자 하는

N개의 회의에 대해 회의실 사용표를 만들자

회의실을 사용할 수 있는 최대 강의실 수

힌트) (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

 

✨주의

1. 최대 개수

2. 끝남과 동시에 시작 가능

3. 시작하자마자 끝날 수 있음

sorted(study, key = lambda x : x[0] 실행 후 sorted(study, key = lambda x : x[1] 실행한 결과
sorted(study, key = lambda x : (x[0], x[1]))한 결과

🧨 정렬을 잘하자

import sys
import heapq
input = sys.stdin.readline

n = int(input().rstrip())  #강의 갯수 n

study = []  # 강의
for x in range(n) :
  start, end = map(int, input().split())
  study.append([start, end])  #시작시간, 끝나는시간 넣어주기

# study.sort()  #정렬
# study=sorted(study, key=lambda x : (x[0],x[1])) 
# print(study)
study=sorted(study, key=lambda x : x[0])  #시작시간으로 정렬한 후
study=sorted(study, key=lambda x : x[1])  #끝시간으로 정렬
#print(study)
#print(study)

ends=0
cnt=0
for i,j in study:
  if i >= ends:  # 시작 시간이 끝나는 시간보다 더 크면
    cnt += 1  # 카운트+1
    ends = j

print(cnt)

 

 

+덧붙이기

https://hyojeong94.tistory.com/124

 

[python] 백준 11000 - 강의실 배정

Q> 시작시간과 끝나는 시간이 주어지고 최소한의 강의실을 사용해서 모든 수업이 가능하게 🧨 강의실을 가장 시작시간이 빠른 것으로 하나 만들어주고 이후에 비교하면서 끝나는 시간을 갱신

hyojeong94.tistory.com

이 문제를 먼저 풀고 회의실 배정을 풀었다.

비슷할줄 알고 착각하다가 많이 돌았다 ㅠㅠ

11000은 강의실 갯수를 세는 것이고

이 문제는 회의 최대 개수를 세는 것