끝나는 시간을 기준으로 오름차순 정렬, 같으면 시작하는 시간 기준 오름차순 정렬.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector <pair<int, int>> v;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
for (int i = 0; i < N; i++) {
int n1, n2;
cin >> n1 >> n2;
v.push_back({ n2,n1 }); //끝나는 시간을 기준으로 정렬하기 위해 이렇게 받음
}
sort(v.begin(), v.end()); //시작시간과 끝나는 시간을 끝나는 시간대로 정렬한 후
//끝나는 순서 >= 시작한 순서로 조건문 돌리면서 rseult++
int result = 0, time = 0;
for (int i = 0; i < N; i++) {
if (time <= v[i].second) {
time = v[i].first;
result++;
}
}
cout << result;
return 0;
}