[실버2] 1931번 : 회의실 배정

Quesuemon·2022년 2월 26일
0

코딩테스트 준비

목록 보기
104/111

🛠 문제

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


👩🏻‍💻 해결 방법

사용가능한 회의의 최대 개수를 구하기 위해서는 우선 빨리 끝나는 회의 순으로 정렬을 해야한다(빨리 끝날수록 고려할 수 있는 회의 수가 많기 때문)
빨리 끝나는 회의들 중에서는 다시 빨리 시작하는 순서대로 정렬을 하면 최대 회의 개수를 구할 수 있다

소스 코드

n = int(input())
data = []
for _ in range(n):
  s, e = map(int, input().split())
  data.append([s, e])
# 끝나는 시간 빠른 순 정렬
data = sorted(data, key=lambda x:x[0])
# 시작 시간 빠른 순 정렬
data = sorted(data, key=lambda x:x[1])

last = 0
result = 0
for i in range(len(data)):
  if data[i][0] >= last:
    result += 1
    last = data[i][1]
print(result)

0개의 댓글

관련 채용 정보