회의의 시작시간과 끝나는 시간이 주어질 때 최대한 많이 회의를 할 수 있는 수는?
할 수 있는 제일 빨리 끝나는 미팅을 선택하구, 끝나구 다음에도 빨리 끝나느 미팅을 선택..
이러면 제일 많이 미팅을 할 수 있다!!
빨리 끝나면 그 이후 시간 부터 또 다른 회의를 할 수 있게 되니까아~~
끝나는 시간이 빠른 순으로 정렬하구 (pair<끝나는시간,시작시간> 순으로 저장해서 사용)
for 문으로 돌면서 시작 시간이 시작할 수 있는 시간이면 그 회의를 잡는다~~
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
int n, result;
vector<pair<int, int>> meeting;
int main() {
int temp1, temp2, nowTime;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> temp1 >> temp2;
meeting.push_back(make_pair(temp2, temp1));
}
sort(meeting.begin(), meeting.end());
nowTime = 0;
for (int i = 0; i < n;i++) {
if (meeting[i].second >= nowTime) {
result++;
nowTime = meeting[i].first;
}
}
cout << result;
return 0;
}