주어진 회의를 시작하는 시간과 끝나는 시간으로 최대 진행 가능한 회의 갯수를 구하는 문제이다.
한 회의가 끝나고 바로 다음 회의를 시작할 수 있다.
회의가 끝나는 시간으로 오름차순 정렬을 한 다음에 남은 회의 시간 중 가장 먼저 시작하는 회의시간을 찾고 이 회의에 해당하는 끝나는 시간 값으로 다음 시작 회의를 찾는 과정을 반복하면 된다.
회의 순서 (1,4) -> (5,7) -> (8,11) -> (12,14)
#include <bits/stdc++.h>
using namespace std;
pair<int, int> p[100002];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n, min, ans = 0;
cin >> n;
for (int i = 0; i < n; ++i)
cin >> p[i].second >> p[i].first;
sort(p, p + n);
min = p[0].first;
for (int i = 1; i < n; ++i)
{
if (min <= p[i].second)
{
min = p[i].first;
ans++;
}
}
cout << ans + 1;
}