[Baekjoon] 1931 회의실 배정 python

sorzzzzy·2021년 8월 24일
0

Baekjoon Algorithm

목록 보기
45/46
post-thumbnail

🏷 문제


💡 코드

from sys import stdin

N = int(stdin.readline())

meetings = [list(map(int, stdin.readline().split())) for _ in range(N)]
# 1번째 인덱스를 기준으로 오름차순 정렬
# 회의가 빨리 끝나야, 그 뒤에 올 수 있는 회의 개수가 많아질 것이기 때문
meetings.sort(key=lambda x:(x[1], x[0]))
print(meetings)

res = 0
now = 0

for start, end in meetings:
    # 시작 시간과 종료 시간이 같을 수 있으므로 >=
    # 앞으로 시작될 회의 시간이 현재 시간보다 같거나 커야함
    if start >= now:
        res += 1
        # 회의가 끝난 시간을 현재 시간으로 업데이트
        now = end
print(res)

🔑

이 문제에서 핵심은,
회의가 빨리 끝날 수록 뒤에 올 수 있는 회의의 개수가 많아진다❗️ 였다

따라서 입력받은 회의들을 끝나는 시간, 시작하는 시간 순으로 오름차순으로 정렬하고
현재 시간, 회의 시작 시간, 회의 끝난 시간을 적절히 고려해서 결과값을 카운트해준다!!

profile
Backend Developer

0개의 댓글