코드
import sys
input = sys.stdin.readline
N = int(input())
table = [list(map(int, input().split())) for _ in range(N)]
table = sorted(table, key=lambda x: (x[1], x[0]))
lastEnd = 0
ans = 0
for t in table:
st, e = t
if st >= lastEnd:
lastEnd = e
ans += 1
print(ans)
결과
풀이 방법
- 다음 회의가 시작되려면 현재 회의의 시작시간이 이전 회의의 종료시간 이후(같아도 ok)이어야 하고, 순차적으로 탐색하려면 회의 배정표가 회의 종료시간을 기준으로 오름차순, 종료시간이 같으면 시작시간을 기준으로 오름차순 정렬되어 있어야 한다.
- 순차탐색하다가 다음 회의로 배정 가능한 회의를 찾으면 해당 회의의 종료시간을 lastEnd에 저장하고 ans += 1을 수행하였다
- 파이썬 정렬 기준
key
사용법: lambda
함수에 정렬기준 우선순위를 전달 (tuple로 전달가능)