from sys import stdin
n = int(input())
room = [[] for _ in range(n)]
for i in range(n):
room[i] = list(map(int, stdin.readline().split()))
room.sort(key= lambda x : [x[1], x[0]])
cnt = 1
time = room[0][1]
for i in range(1, n):
if time <= room[i][0]:
cnt += 1
time = room[i][1]
print(cnt)
끝나는 시간 정렬 후 시작 시간 정렬해서 구할 수 있는 문제
끝나는 시간을 저장했다가 끝나는 시간과 같거나 큰 시작시간이 들어오면 바꿔주면서 숫자를 세는 방식으로 해결
이 문제에서 주의할 점은 끝나는 시간만으로 정렬하면 안된다는 것이다.
끝나는 시간만으로 정렬했을 때는 답이 틀리게 되는데
이에 대한 반례는 아래와 같다
3
1 3
8 8
4 8
이 경우 끝나는 시간으로만 정렬하게 되면 2개가 된다. 그렇기 때문에 시작 시간에 대해서도 정렬이 필요하다.
이러한 반례 예시를 떠올리기 힘들어서 많이 재시도 했다.