#include <bits/stdc++.h>
using namespace std;
int Solve(vector<pair<int, int>> meeting) {
int answer = 0;
//종료시간을 기준으로 정렬
sort(meeting.begin(), meeting.end());
int time = 0;
for (int i = 0; i < meeting.size(); i++) {
if (meeting[i].second >= time) {
time = meeting[i].first;
answer++;
}
}
return answer;
}
int main() {
int n;
cin >> n;
vector<pair<int, int>> meeting(n);
for (int i = 0; i < n; i++)
cin >> meeting[i].second >> meeting[i].first;
//<종료시간, 시작시간>
cout << Solve(meeting);
return 0;
}
핵심개념 : 그리디
sort(meeting.begin(), meeting.end())
(종료시간을 기준으로 정렬)if (meeting[i].second >= time)
time = meeting[i].first
vector<bool> check(n, true)
start.erase(start.begin()+i)
start[i]
원소 삭제vector<pair<int, int>>
접근 :vec[i].first
, vec[i].second
로 접근