import sys
sys.stdin = open('input.txt', 'rt')
input = sys.stdin.readline
N = int(input())
graph = []
for _ in range(N):
graph.append(list(map(int, input().split())))
graph.sort(key=lambda x: (x[1], x[0])) # lamda를 통해 회의가 가장 일찍 끝나는 시간대로 정렬하였다 그 다음 시작시간대로 정렬을 해줘야한다! 그래야지 그리디 알고리즘이 성립한다.
end = graph[0][1] # 제일 앞에 있는게 가장 끝나는 시간이 빠르니 end 변수에 넣어주고
count = 1
for i in range(1, N):
if end <= graph[i][0]: # 만약에 현재 끝나는 시간보다 클 경우
end = graph[i][1] # 끝나는 시간을 업데이트 해주고
count += 1 # 카운트를 더해준다.
print(count)
끝나는 시간이 같다면 빨리 시작하는 순서대로 정렬이 되어야 한다.
예를 들자면
2
2 2
1 2
의 경우 이 상태로 한다면 (2 2)가 되고 (1 2)는 (2 2)의 끝나는 시간보다 시작시간이 일찍이기 때문에 무시되어 1번의 회의가 진행된다고 나온다. 하지만 정렬을 통해 (1 2)가 먼저 선택되면 (2 2)도 선택이 가능해지기 때문에 가능한 회의는 2번으로 결정된다.
잘보고 갑니다 👍