백준 1931번 : 회의실 배정
난이도 : 실버1
import sys
input = sys.stdin.readline
N = int(input())
meeting = [[0] * 2 for _ in range(N)]
for i in range(N):
s, e = map(int, input().split())
meeting[i][0] = s
meeting[i][1] = e
meeting.sort(key = lambda x: (x[1], x[0]))
cnt = 1
endTime = meeting[0][1]
for i in range(1, N):
if meeting[i][0] >= endTime:
cnt += 1
endTime = meeting[i][1]
print(cnt)
총 회의의 수 N을 입력받고, 그 수만큼 회의의 시작시간과 끝 시간을 입력받는다. 그런 다음 끝 시간을 기준으로 오름차순 정렬을 해주는데, 조건을 붙일 수 있으면 끝 시간이 같을 때 시간 시간이 작은 순으로 정렬을 해주는 것도 필요해보인다. entTime이란 변수에 첫 회의의 끝 시간을 저장해주고, 2번째 회의부터 N번째 회의까지 for문을 통해 확인해준다. 만약 회의의 시작 시간이 entTime보다 크면 cnt를 늘려주고 entTime을 회의의 끝 시간으로 바꿔주면서 회의가 가능한 최대 개수를 체크한다.