n)와 회의의 시작과 끝의 정보가 주어진 리스트(meetings)를 입력받는다.meetings리스트에 있는 모든 회의를 끝나는 시간 기준으로 정렬한다. 만약 끝나는 시간이 같다면, 시작 시간 기준으로 정렬한다.(lambda 이용)meetings리스트의 시작값(start)과 끝값(end)을 반복하여 확인한다.
last_end_time)보다 같거나 크다면, 회의를 할 수 있기 때문에 개수를 1개 늘려준다(cnt += 1) 그 후, 회의가 마지막에 끝나는 시간을 현재 값의 끝나는 시간으로 업데이트해준다.cnt)를 출력한다.import sys
input = sys.stdin.readline
n = int(input())
meetings = [[0,0] for _ in range(n)]
for i in range(n):
start, end = map(int, input().strip().split())
meetings[i][0] = start
meetings[i][1] = end
# 끝나는 시간을 기준으로 정렬, 끝나는 시간이 같으면 시작 시간을 기준으로 정렬
meetings.sort(key=lambda x: (x[1], x[0]))
cnt = 0
last_end_time = 0
for start, end in meetings:
if start >= last_end_time:
cnt += 1
last_end_time = end
print(cnt)
⇒ $O(NlogN)$

ㅋㅋ이게 맞나..
<aside> 🚨 실패한 아이디어와 코드
</aside>