728x90
반응형
https://www.acmicpc.net/problem/1931
1931번: 회의실 배정
(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.
www.acmicpc.net
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(pair<int, int>& a, pair<int, int>& b){
if(a.second == b.second) return a.first < b.first;
return a.second < b.second;
}
int main() {
int n, a, b, t, cnt = 1;
cin >> n;
vector<pair<int, int>> v;
for(int i = 0; i < n; i++){
cin >> a >> b;
v.push_back({a, b});
}
sort(v.begin(), v.end(), compare);
t = v[0].second;
for(int i = 1; i < n; i++){
if(v[i].first < t) continue;
t = v[i].second;
cnt++;
}
cout << cnt << endl;
return 0;
}
회의가 끝나는 시간을 오름차순으로, 끝나는 시간이 같다면 시작시간이 오름차순이 되도록 정렬한다.
첫 번째 회의가 끝나는 시간을 t로 놓고, 다음 회의가 시작하는 시간이 t보다 큰 경우에 카운트하고 회의가 끝나는 시간을 다시 t로 놓는 것을 반복한다.
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 2630번 색종이 만들기 (C++) (0) | 2022.02.12 |
---|---|
[BOJ] 1697번 숨바꼭질 (C++) (0) | 2022.02.12 |
[BOJ] 6068번 시간 관리하기 (C++) (0) | 2022.02.11 |
[BOJ] 1263번 시간 관리 (C++) (0) | 2022.02.10 |
[BOJ] 14490번 백대열 (C++) (0) | 2022.02.06 |