알고리즘/백준(BOJ)
백준 - 1931 회의실 배정
시나모온
2020. 7. 29. 17:02
문제 링크입니다 : 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(const pair<int, int>& a, const pair<int, int>& b) {
if(a.second == b.second) return a.first < b.first;
return a.second < b.second;
}
int main() {
int N;
cin >> N;
vector<pair<int, int>> meeting(N, pair<int, int>());
for(int i = 0; i < N; i++) {
cin >> meeting[i].first >> meeting[i].second;
}
sort(meeting.begin(), meeting.end(), compare);
int startTime = 0;
int cnt = 0;
for(int i = 0; i < N; i++) {
if(meeting[i].first < startTime) continue;
startTime = meeting[i].second;
cnt++;
}
cout << cnt;
return 0;
}
개발 환경 : vscode
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~