문제풀이
1. vector에 회의실 시작시간과 끝나는 시간을 저장한다
2. 이 때 시작시간을 second, 끝나는 시간을 first에 저장해야한다. 왜냐하면 끝나는 시간을 기준으로 정렬을 해야하기 때문이다.
3. 회의가 끝나는 시간과 그 다음으로 빨리 끝나는 회의를 찾아서 회의시간이 겹치지 않는다면 count 해준다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
ios_base :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
vector< pair<int,int> > v;
int N;
int a,b;
cin >> N;
for(int i = 0; i<N; i++){
cin >> a >> b;
v.push_back(make_pair(b,a));
}
sort(v.begin(),v.end());
int early = 0, cnt = 0;
int meetBegin, meetEnd = 0;
for(int i = 0; i<v.size(); i++){
meetBegin = v[i].second;
meetEnd = v[i].first;
if(early <= meetBegin){
early = meetEnd;
cnt++;
}
}
cout << cnt;
}
'알고리즘' 카테고리의 다른 글
[C++] BOJ-1966 (0) | 2019.10.11 |
---|---|
[C++] BOJ-1932 (0) | 2019.10.11 |
[C++] BOJ-1916 (0) | 2019.10.11 |
[C++] BOJ-1699 (0) | 2019.10.11 |
[C++] BOJ-1654 (0) | 2019.10.11 |