def solution(routes):
    # 나가는 시점을 기준으로 정렬
    routes.sort(key=lambda x: x[1])
    cameras = set()

    for route in routes:
        # 카메라로 찍힌 적 있는지 확인
        is_taken = False
        for camera in cameras:
            if route[0] <= camera <= route[1]:
                is_taken = True
                break

        if not is_taken:
            cameras.add(route[1])

    return len(cameras)


# 정확성  테스트
# 테스트 1 〉	통과 (0.03ms, 10.3MB)
# 테스트 2 〉	통과 (0.03ms, 10.1MB)
# 테스트 3 〉	통과 (0.03ms, 10MB)
# 테스트 4 〉	통과 (0.03ms, 10.2MB)
# 테스트 5 〉	통과 (0.03ms, 10.2MB)
# 효율성  테스트
# 테스트 1 〉	통과 (0.82ms, 10.5MB)
# 테스트 2 〉	통과 (0.55ms, 10.3MB)
# 테스트 3 〉	통과 (1.77ms, 10.5MB)
# 테스트 4 〉	통과 (0.08ms, 10.2MB)
# 테스트 5 〉	통과 (2.33ms, 10.6MB)
# 채점 결과
# 정확성: 50.0
# 효율성: 50.0
# 합계: 100.0 / 100.0

assert (solution([[-20, 15], [-14, -5], [-18, -13], [-5, -3]]) == 2)
