회의실 배정

장서연·2021년 8월 27일
# 11
# 1 4
# 3 5
# 0 6
# 5 7
# 3 8
# 5 9
# 6 10
# 8 11
# 8 12
# 2 13
# 12 14

n = int(input())

meet_time = []
for i in range(n):
    start_time, end_time = map(int, input().split(' '))
    meet_time.append([start_time, end_time])

meet_time.sort(key = lambda x: x[1])

# [[1, 4], [3, 5], [0, 6], [5, 7], [3, 8], [5, 9], [6, 10], [8, 11], [8, 12], [2, 13], [12, 14]]
result_meet_cnt = 1
booked_meet_end_time = meet_time[0][1]

# 일단 가장 먼저 끝나는 회의는 일단 시작했다고 가정함. 그래서 1로 초기화해두었음
for meet in meet_time[1:]:
    start_time, end_time = meet
    if booked_meet_end_time <= start_time:
        result_meet_cnt += 1
        booked_meet_end_time = end_time
        print(start_time, end_time)

print(result_meet_cnt)

# 이 문제는 정렬하는게 포인트 였음. 즉, "그리디한 선택을 할 수 있게 정렬"하는 것!
# 이 문제는 결국 그냥 "끝나는 시간"만 보면 되는 문제였음

# 좀 단순화해서 이해할 필요가 있음

0개의 댓글