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