개발
home
🥁

[알고리즘] 백준 1931번 회의실 배정 python

Created
2022/07/05
Tags
Algorithm
Greedy
Python
2022-07-05 @이영훈

문제 분석

전형적인 그리디 알고리즘 문제입니다.
회의실을 가장 많은 횟수로 사용하기 위해서, 회의실 사용이 끝나는 시간을 기준으로 오름차순합니다.
그리고 문제의 조건 중에서 “회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다.”라는 조건이 있습니다.
다음과 같은 조건이 들어오는 경우, (1 2) → (2 2)로 2번이 정답입니다. 시작 시간을 오름차순 정렬하지 않으면 (2, 2)로 1번인 결과가 나올 수 있기 때문에, 시작 시간을 오름차순 정렬해야 합니다.
// 입력 2 2 2 1 2
Plain Text
복사

문제 풀이 코드

n = int(input()) meetings = [] for _ in range(n): start, end = map(int, input().split(" ")) meetings.append((start, end)) # 종료 시간을 오름차순 정렬하고, 시작 시간을 오름차순 정렬합니다 meetings.sort(key=lambda x: (x[1], x[0])) time = 0 answer = 0 for meeting in meetings: if time <= meeting[0]: time = meeting[1] answer += 1 print(answer)
Python
복사