Algorithm
백준 1931번 : 회의실 배정
jun_code
2022. 1. 5. 14:05
<문제>
링크 : https://www.acmicpc.net/problem/1931
1931번: 회의실 배정
(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.
www.acmicpc.net
<코드>
N = int(input())
cf_tm = []
for _i in range(N):
_cf = list(map(int, input().split()))
cf_tm.append(_cf)
cf_tm.sort(key=lambda x: (x[1], x[0]))
ed_tm = 0
count = 0
for i in range(N):
if cf_tm[i][0] >= ed_tm:
count += 1
ed_tm = cf_tm[i][1]
print(count)
<풀이>
현재 회의가 끝나는 시점 이후에 시작되는 회의 중 가장 빨리 끝나는 회의를 선택해야 한다.
입력받은 데이터에서 끝나는 시점을 기준으로 정렬하여 N개의 회의 관련 데이터에서 현재 회의의 끝나는 시점 이후 중 가장 빨리 끝나는 회의를 고르고 해당 회의의 끝나는 시점을 가지고 다음 회의를 선정한다.
참고 : https://github.com/Junuux/Algorithm/tree/main/Silver/1931