개발 연습장/백준 문제풀이

[파이썬, Python] 백준 1931: 회의실 배정

LooanCheong 2023. 2. 23. 15:26
반응형

문제

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

 

1931번: 회의실 배정

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

www.acmicpc.net

코드

import sys
input = sys.stdin.readline

n = int(input())
res = []

for i in range(n):
    a, b = map(int, input().split())
    res.append((a,b))

res.sort(key=lambda x: (x[1],x[0]))

cnt = 0
end_time = 0

for i,j in res:
    if i >= end_time:
        cnt += 1
        end_time = j

print(cnt)

설명

우선 각 값을 입력받고, key를 이용해서 sort를 해준다.

회의가 빠르게 끝날수록 더 많은 회의를 배정 가능하므로,
x[1]을 우선으로 sort 하여 종료시간이 빠른 순으로 우선 정렬하고,
그 이후 시작시간을 기준으로 정렬하게 된다면,
시작 시간이 빠르고 종료 시간이 빠른 순으로 정렬된다.

이후 정렬된 res 리스트를 반복문으로 돌며,
i가 종료시간보다 크면 카운트를 하나 늘리고 종료 시간을 j로 설정해 준다.

이후 정답을 출력한다.

반응형