백준1931 - 회의실 배정
전략
끝나는 시간을 기준으로 오름차순 정렬을 한다.
빨리 끝나는 것을 먼저 배치해야 남는 시간이 길어진다.
시작하는 시간을 기준으로 오름차순 정렬을 한다.
(3, 8), (5, 8)이라면 (3, 8)을 먼저 시작한다.
코드
from sys import stdin, stdout
def custom_compare(x, y):
if x[1] < y[1]:
return 1
else:
if x[0] < y[0]:
return 1
return -1
N = int(stdin.readline())
arr = []
for i in range(N):
a, b = map(int, stdin.readline().split(' '))
arr.append([a, b])
arr = sorted(arr, key=lambda a:a[0])
arr = sorted(arr, key=lambda a:a[1])
cnt = 1
endTime = arr[0][1]
for i in range(1, N):
if arr[i][0] >= endTime:
cnt += 1
endTime = arr[i][1]
stdout.write(str(cnt) + '\\n')
Last updated