백준 1931 - 회의실 배정 (Python)

2024. 2. 15. 05:36알고리즘

문제

https://www.acmicpc.net/problem/1931

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

풀이

a = []
for _ in range(int(input())):
    s,e = map(int,input().split())
    a.append((s,e))
    
a.sort(key=lambda x: (x[1],x[0]))

count = 0
now = 0
for t in a:
    if t[0] >= now:
        count += 1
        now = t[1]

print(count)

그리디 알고리즘 문제이다.

회의가 끝나는 시간을 기준으로 정렬하고(끝나는 시간이 같다면 시작하는 시간이 작은거부터 정렬)

이전 회의가 끝나기 이전에 시작되는 회의의 개수를 세어서 출력해주었다.

 

회의가 빨리 끝날수록 다음 회의를 시작할 기회가 많아지므로 끝나는 시간을 우선적으로 신경써주었다